禁用在Jquery Multiselect中检查的最后一个选项

时间:2012-03-21 07:50:52

标签: jquery jquery-ui jquery-plugins

我在我的项目中使用jquery multiselect,当用户点击checkall然后如何停止此函数来检查jquery multiselect中的最后一个选项?

就好像我的jquery multiselect中有4个选项,如果用户点击检查所有我想要intial三个选项被检查但是最后一个选项未选中。 任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

在这里,您可以在此处更新解决方案以获取插件以及带有演示的正常多个复选框!

多选的解决方案Checkbox特殊条件取消选中checkall上的最后一个复选框

针对@ Gautam的多选插件的具体情况使用MultiSelect jsfiddle:http://jsfiddle.net/fG6PT/82/

<强> HTML:

<select multiple="multiple" class='multi'>
<option value="foo">foo</option>
<option value="bar">bar</option>
<option value="baz">baz</option>
<option value="toy">toy</option>
</select>

<强> JQuery的

$('.multi').multiselect({

    // Uncheck the last checkbox when chaeckall happens.
    checkAll: function () {

       if ($(this).is(":last") == true){

          var arr = $(this).val().toString().split(',');
           // Work on the array length alert('===>' + arr.length);
           var l = arr.length;
           for(i=(l-1);i<l;i++){
               // so whatever the lenght is aim for the last element
                 $('input:checkbox[value="' + arr[i] + '"]').attr('checked', false);
           }
        }
    }

});

以下解决方案适用于普通的Chckbox

这里的工作示例:http://jsfiddle.net/Ev7FX/5/

http://jsfiddle.net/Ev7FX/4/

<强> HTML

<input type="checkbox" name="check[]" value="1" />
<input type="checkbox" name="check[]" value="2" />
<input type="checkbox" name="check[]" value="3" />
<input type="checkbox" name="check[]" value="4" />
<a href="#" title="" id="check">check all</a> <a href="#" title="" id="uncheck">uncheck all</a>​

JQuery代码

var all_checkboxes = jQuery(':checkbox');

jQuery('#check').on('click', function(event){
    event.preventDefault();
       all_checkboxes.not(':last').prop('checked', true);
});

jQuery('#uncheck').on('click', function(event){
    event.preventDefault();
    all_checkboxes.prop('checked', false);
});​

这会有所帮助,欢呼!

答案 1 :(得分:0)

捕获复选框,迭代它们,对找到的最后一个元素执行(或在您的情况下,不执行)唯一操作。

var ourCheckBoxes = $(":checkBoxes");
$.each(ourCheckBoxes, function(index,value){
  if(index = ourCheckBoxes.length -1){
    //this is our last element broski
  }
});