2015-10-13 23 views
5

我已经使用下拉这个jQuery http://hemantnegi.github.io/jquery.sumoselect/sumoselect_demo.html与复选框集极限相扑下拉

<select multiple="multiple" class="SlectBox" name="cat_ids[]"> 
    <option value="op1">Options1</option> 
    <option value="op2">Options2</option> 
    <option value="op3">Options3</option> 
    <option value="op4">Options4</option> 
    <option value="op5">Options5</option> 
</select> 

此下拉做工精细条件:弓选项中进行选择。 但我想对这个选择给不同的用户一些限制。

我曾尝试下面的jQuery代码,但它不工作正确

jQuery(document).ready(function($){ 

var last_valid_selection = null; 
    $('.SlectBox').change(function(event) { 
    if ($(this).val().length > 2) { 
     alert('You can only choose 2!'); 
     $(this).val(last_valid_selection); 
    } else { 
     last_valid_selection = $(this).val(); 
    } 
    }); }); 

回答

3

可以使用相扑方法unSelectAllselectItem和插件初始化的triggerChangeCombined选项。

编号:http://hemantnegi.github.io/jquery.sumoselect/

在如果限制被提高即可取消以及每个元素的索引设置的最后一个有效的选择更改事件。

代码:

$('#island').SumoSelect({ triggerChangeCombined: true, placeholder: "TestPlaceholder" }); 

var last_valid_selection = null; 
$('#island').change(function (event) { 
    if ($(this).val().length > 2) { 
     alert('You can only choose 2!'); 
     var $this = $(this); 
     $this[0].sumo.unSelectAll(); 
     $.each(last_valid_selection, function (i, e) { 
      $this[0].sumo.selectItem($this.find('option[value="' + e + '"]').index()); 
     }); 
    } else { 
     last_valid_selection = $(this).val(); 
    } 
}); 

演示:http://jsfiddle.net/IrvinDominin/80xLm01g/

+0

这是工作的罚款。谢谢 –