2015-03-02 74 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'); 
    } 
});