如何有条不紊地选择一些选项?

时间:2013-04-08 06:06:54

标签: jquery html

我正在使用http://ivaynberg.github.io/select2/中的select2.js插件进行员工列表下拉列表并进行多项选择。

<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>

我的要求是当用户选择“所有”时,个别员工不能被选举。如果用户选择任何员工,则“ALL”不能被选举。

谢谢,

3 个答案:

答案 0 :(得分: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);
           }
       })
    }
})

希望它会有所帮助。

答案 1 :(得分: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);
          }
      }
    });
});

答案 2 :(得分:0)

我相信你正在寻找这样的事情:http://jsfiddle.net/jaTPc/

继承了modded 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);
});