2013-04-08 75 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); 
});