2015-03-02 40 views
2

此组合框包含一些x值当我选择10号值我需要禁用多重选择选项,比10日其他有价值的意思是这个选项应该是多个选择如何禁用多选或更改选择事件?

<select class="easyui-combobox" multiple="multiple" multiline="true" style="width: 150px;height:50px;" id="inc_combo_ems_hour" style="width: 75px;"> 
         <option value="00">00</option> 
         <option value="01">01</option> 
         <option value="02">02</option> 
         <option value="03">03</option> 
         <option value="04">04</option> 
         <option value="10">10</option></select>  


    $('#inc_combo_ems_hour').combobox({ 
      onSelect: function(){ 
       var val=[]; 
     val=$('#inc_combo_ems_hour').combobox('getValues'); 

     for(i=0;i<10;i++) 
     { 
     if(val[i]!="null"){ 
     if(val[i]=="*") 
     { 
     $('#inc_combo_ems_hour').combobox({ 
         required: false, 
         novalidate: false, 
       multiple: false, 
       value:"*" 
         }); 
     } 
     } 
     else if(val[i]!=null && val[i] !="*"){ 
     $('#inc_combo_ems_hour').combobox('setValue',val[i]) 
     $('#inc_combo_ems_hour').combobox({ 
         required: true, 
         novalidate: false, 
       multiple: true, 
       value:val[i] 
         }); 
     } 
     } 
     } 
     }); 

回答

2

这里有一个实用的解决方案:

$('#inc_combo_ems_hour').change(function(){ 
 

 
    if ($('#inc_combo_ems_hour option:selected').val() == 10) { 
 

 
    $(this).removeAttr('multiple'); 
 

 
    } else { 
 

 
    $(this).attr('multiple', 'multiple'); 
 

 
    } 
 

 
});
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script> 
 

 
<select class="easyui-combobox" multiple="multiple" multiline="true" style="width: 150px;height:50px;" id="inc_combo_ems_hour" style="width: 75px;"> 
 
    <option value="00">00</option> 
 
    <option value="01">01</option> 
 
    <option value="02">02</option> 
 
    <option value="03">03</option> 
 
    <option value="04">04</option> 
 
    <option value="10">10</option> 
 
</select>

或参阅本alternate demo here

+0

我需要多个选择除第10个值以外 – javasundaram 2015-03-02 11:39:29

+0

检查我更新的答案@javasundaram – 2015-03-02 11:42:12

0

试试这个,这将帮助你。

$('#sle').change(function(){ 
 
    $(this).removeAttr('multiple'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select id="sle" class="easyui-combobox" multiple="multiple" > 
 
    <option value="00">00</option> 
 
    <option value="01">01</option> 
 
    <option value="02">02</option> 
 
    <option value="03">03</option> 
 
    <option value="04">04</option> 
 
    <option value="10">10</option> 
 
</select>

0

,如果你婉吨,以除去多个选择时的选择是10:

$('#sle').change(function(){ 
    if ($(this).val() == 10) { 
     $(this).removeAttr('multiple'); 
    } else { 
     $(this).attr('multiple', 'multiple'); 
    } 
}); 
0

jQuery的1.6起, 始终使用的selectedIndex为选项值可能会改变。

$('#inc_combo_ems_hour').change(function() { 
    var $this = $(this); 
    if ($this.prop("selectedIndex") === 9) { 
     $this.removeAttr('multiple'); 
    } else { 
     $this.attr('multiple', 'multiple'); 
    } 
});