web-dev-qa-db-fra.com

Désactivez les options de sélection basées sur la valeur * via le HTML uniquement! *

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.

18
Ajay

Avec votre balisage actuel, cela fonctionnera:

$("select option:contains('Value b')").attr("disabled","disabled");

http://jsfiddle.net/CtqC6/

ÉDITER

http://jsfiddle.net/CtqC6/1/

var variable = "b"
$("select option:contains('Value " + variable + "')").attr("disabled","disabled");
$("select").prop("selectedIndex",-1)
27
Joseph Marikle
$("select option[value='"+ $variable + "']").attr('disabled', true); 
20
aziz punjani

Cela devrait être une solution plus rapide

$('select').children('option[value="' + $variable + '"]').attr('disabled', true)
9
Philip

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");
    }
});

Essayez-le ici

6
Marko