jQuery Multiselect - 选择所有事件处理程序

时间:2016-07-12 08:56:13

标签: javascript jquery multi-select jquery-multiselect

我有一个jQuery multiselect,它默认选中所有选项。 每当所选选项发生变化时,我都会相应地重新加载页面数据。

除了单击“全选”按钮不会触发onChange事件并且单击时无法重新加载数据时,一切都很有效。我尝试将事件处理程序附加到checkAll并选择AllAll但是无济于事。

$("#testselect").multiselect({
        nonSelectedText: 'None',
        allSelectedText: 'All Selected',
        includeSelectAllOption: true,
        buttonWidth: '100%',
        checkAll: function () {
            alert("check all"); // Doesn't work
        },
        selectAll: function () {
            alert("select all"); // Doesn't work
        },
        onChange: function (option, checked, select) {
            alert("onchange") // Works but not for 'All Selected'
            // Do something
        }
});
$("#testselect").multiselect('selectAll', false);
$("#testselect").multiselect('updateButtonText');

3 个答案:

答案 0 :(得分:0)

添加主复选框:

<th>SELECT ALL<br/><input type="checkbox"  onClick="toggle(this)" /></th>

添加脚本:

          <script>

          function toggle(source) {
           checkboxes = document.getElementsByName('checkbox[]');
           if(x=1)
           {
             for(var i=0, n=checkboxes.length;i<n;i++) {
               checkboxes[i].checked = source.checked;
             }}}



           </script>

添加复选框您想按主要选择:

<input name="checkbox[]"    type="checkbox" >

答案 1 :(得分:0)

这适合我。

$(document).on('click', '.ms-selectall', function( event ){
        //your code
});

答案 2 :(得分:0)

使用 onSelectAll onDeselectAll 事件而不是checkAll和selectAll

示例:

$("#testselect").multiselect({
        nonSelectedText: 'None',
        allSelectedText: 'All Selected',
        includeSelectAllOption: true,
        buttonWidth: '100%',
        onChange: function (option, checked, select) {
            alert("onchange") // Works but not for 'All Selected'
        },
        onSelectAll: function () {
            console.log("call when select all");
        },
        onDeselectAll: function () {
            console.log("call when deselect all");
        }
});