2013-04-17 148 views
0

如何在一個選擇禁用多個選項。例如我有2個選擇具有5級3的選項。所以,如果我選擇第二選擇第三個選項,我想在第一個禁用第三,第四和第五選項中進行選擇:如何禁用多重選擇選項

<select name="smjer"> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
</select> 

第二選擇:

<select name="godina" > 
<option value="1" >1.</option> 
<option value="2" >2.</option> 
<option value="3">3.</option> 
</select> 

我試着刪除選項,但隨後無需刷新頁面,我不能檢索它們:

var ary=[3,4,5]; 
$('[name=smjer] option').filter(function(){ 
    return ($.inArray(parseInt(this.value),ary) >-1); 
}).remove(); 
+0

嗯,你'去'去掉它們。你不希望*他們會離開? – cHao

+1

使用show/hide代替刪除 – Huangism

回答

3

你可以只隱藏起來:

var ary = [3, 4, 5]; 
$('[name=smjer] option').filter(function() { 
    return ($.inArray(parseInt(this.value), ary) > -1); 
}).hide(); 

,並再次在需要時顯示它:

var ary = [3, 4, 5]; 
$('[name=smjer] option').filter(function() { 
    return ($.inArray(parseInt(this.value), ary) > -1); 
}).show(); 

爲了使其更好,你可以這樣做:

var ary = [3, 4, 5]; 

// Get the options to be hidden/shown 
var $options = $('[name=smjer] option').filter(function() { 
    return ($.inArray(parseInt(this.value), ary) > -1); 
}); 

// Hide the options 
$options.hide(); 

// Show the options 
$options.show(); 
+1

tnx很多男人:)) –

0

您也可以禁用它們:

var ary=[3,4,5]; 
$('[name=smjer] option').filter(function(){ 
    return ($.inArray(parseInt(this.value),ary) >-1); 
}).prop('disabled', true); 
+0

'.disabled =「disabled」'可能不會做你認爲它的作用。嘗試'.prop( '禁用',真)'來代替。當然,你仍然需要擔心重新啓用它們時,其他選擇框的值更改... – cHao

+0

是的,你的權利,感謝您的編輯 – saidozcan

+0

停用選項是否適用於所有瀏覽器? – nnnnnn

相關問題