2011-09-16 10 views
13

変数の値に基づいて選択オプションを無効にする必要があります。値はselectオプション値の1つと似ており、無効にする必要があります。 EXのために値に基づいて選択オプションを無効にする* HTMLのみ!*

、変数は値に等しい場合

<select> 
<option>Value a</option> 
<option>Value b</option> 
</select> 

$variable = <some select option value>; 

だから、それは選択オプションで無効にする必要があります。

ありがとうございました。

答えて

19

これは動作します:

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

http://jsfiddle.net/CtqC6/

EDIT

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

var variable = "b" 
$("select option:contains('Value " + variable + "')").attr("disabled","disabled"); 
$("select").prop("selectedIndex",-1) 
+0

する必要があります選択メニュー – Ajay

+0

変数を使ってコンストラクタを構築することで動的にすることができます(my editを参照)。また、選択した項目を無効にすると、選択した項目の選択が解除されません。 –

+0

素敵なシンプルなソリューション、ありがとう –

5

あなたは次のマークアップこれはjQueryを使用して

<select> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

を持っていたとしましょう、サーブオプションは無効になります。あなたの現在のマークアップでは

$("select option").each(function() { 
    var $thisOption = $(this); 
    var valueToCompare = "saab"; 

    if($thisOption.val() == valueToCompare) { 
     $thisOption.attr("disabled", "disabled"); 
    } 
}); 

Try it out here

14
$("select option[value='"+ $variable + "']").attr('disabled', true); 
4

これは私が最初のオプションは、それがユーザーがクリックしたときにのみ無効になります無効に設定されている場合にも、代わりに値bの変数を追加するにはどうすればよい速く解決

$('select').children('option[value="' + $variable + '"]').attr('disabled', true) 
関連する問題