2013-04-08 120 views
1

我使用select2.js插件從http://ivaynberg.github.io/select2/僱員名單下拉與多個選擇。當用戶選擇 「ALL」,那麼個別員工不能總統當選如何忽略有條件地選擇一些選項?

<select id="empList" name="empList" multiple="multiple"> 
<option value="ALL">ALL</option> 
<option value="1">emp 1</option> 
<option value="2">emp 2</option> 
<option value="3">emp 3</option> 

我的要求。如果用戶選擇任何員工,則「全部」不可選。

感謝,

回答

0

我沒有測試此代碼,但它應該是這樣的:

$('#empList').change(function() { 
    var self = $(this); 
    if (self.val() == undefined) { // Selected all option 
     $.each(self.find('option'), function (res) { 
      if (res.attr('value') != undefined) { 
       res.prop('disabled', true); 
      } 
     }) 
    } 
    else { 
     $.each(self.find('option'), function (res) { 
      if (res.attr('value') != undefined) { 
       res.prop('disabled', false); 
      } 
     }) 
    } 
}) 

希望這將有助於。

0

我對你的解決方案... 記住這腳本..,

$('#empList').click(function(){ 
    var Value = $(this).val(); 
    $("#empList option").each(function(){ 
     var Opt = $(this).val(); 
     if(Value == 'ALL'){ 
      if(Opt != Value){ 
       $("option[value="+Opt+"]").prop('disabled', true); 
      } else { 
       $("option[value="+Opt+"]").prop('disabled', false); 
      } 
     } else { 
      if(Value == null) { 
       $("option[value="+Opt+"]").prop('disabled', false); 
      } else { 
       $("option[value='ALL']").prop('disabled', true); 
      } 
     } 
    }); 
}); 
0

我相信你正在尋找的東西是這樣的:http://jsfiddle.net/jaTPc/

繼承人改裝成HTML(添加類):

<select id="empList" name="empList" multiple="multiple"> 
<option value="ALL" class="all">ALL</option> 
<option value="1" class="notall">emp 1</option> 
<option value="2" class="notall">emp 2</option> 
<option value="3" class="notall">emp 3</option> 
</select> 

而jQuery的

$("#empList").change(function() { 
var optionAll = $(".all"); 
var optionOther = $(".notall"); 

this.value == "ALL" ? optionOther.prop("disabled", true) : optionAll.prop("disabled", true); 
});