J'ai besoin de désactiver une option de sélection basée sur la valeur d'une variable. La valeur est similaire à l'une des valeurs de l'option de sélection et doit être désactivée.
Par exemple,
<select>
<option>Value a</option>
<option>Value b</option>
</select>
$variable = <some select option value>;
Donc, si la variable est égale à la valeur a, elle doit être désactivée dans l'option de sélection.
Merci.
Avec votre balisage actuel, cela fonctionnera:
$("select option:contains('Value b')").attr("disabled","disabled");
ÉDITER
var variable = "b"
$("select option:contains('Value " + variable + "')").attr("disabled","disabled");
$("select").prop("selectedIndex",-1)
$("select option[value='"+ $variable + "']").attr('disabled', true);
Cela devrait être une solution plus rapide
$('select').children('option[value="' + $variable + '"]').attr('disabled', true)
Supposons que vous disposiez du balisage suivant
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
En utilisant ce jQuery, l'option saab serait désactivée.
$("select option").each(function() {
var $thisOption = $(this);
var valueToCompare = "saab";
if($thisOption.val() == valueToCompare) {
$thisOption.attr("disabled", "disabled");
}
});