2011-09-16 33 views
13

我需要根據變量的值禁用選擇選項。該值與選擇選項值中的一個相似,並且需要禁用該值。根據值*僅通過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/

編輯

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

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

如何添加,而不是B值可變,也如當用戶點擊第一個選項設置爲禁用它只被禁用選擇菜單。 – Ajay

+0

通過構建帶變量的構造函數可以使其動態化(請參閱我的編輯)。此外,禁用選定的項目的作品,它只是不取消選定的項目(也在我的編輯)。 –

+0

不錯的簡單解決方案,謝謝 –

5

比方說,你有以下標記

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

使用這個jQuery,薩博選項將被禁用。

$("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

這應該是一個更快的解決方案

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