1

这是我到目前为止检查所有复选框的内容,这些复选框位于下拉列表中。

 _popup: function () {
            e.fn._popup.call(this), this.popup.one("open", function () {
                this.wrapper = c.wrap(this.element).addClass("km-popup")
            });

            // Modify popup to include a "Select All" checkbox.
            $(this.popup.element).children("ul:first-child").before("<ul class='k-list k-reset' unselectable='on' style='overflow: auto;'><li class='k-item' unselectable='on'><input id='selectall' type='checkbox' /><span>Selected</span></li></ul><hr/>");

            // Attach event handler to "Select All checkbox.
              $("#selectall").bind('change', function(){
                if($(this).prop('checked')){
                    $(".checkbox").prop('checked', true);
                }else{
                    $(".checkbox").prop('checked', false);
                }
            });

这会更新复选框以直观地显示在屏幕上,所有选中或取消选中。我有一个按钮告诉我视图模型的状态,即复选框是真还是假。问题是,随着 selectall 工作并检查所有内容,viewmodel 不会随着这些更改而更新,即每次单击全选复选框时,无论是否选中测试按钮,所有内容都保持为假。单击全选时,我需要一些方法来更新视图模型。整个程序非常复杂,但如果您需要更多了解我的问题,请告诉我。

这是我的视图模型中的内容

var viewModel = kendo.observable({
    options: [{ text: "test1", value: 1, selected: false },
                { text: "test2", value: 2, selected: false },
                { text: "test3", value: 3, selected: false },
                { text: "test4", value: 4, selected: false }
                ]
});
4

1 回答 1

2

尝试这样的事情

  $("#selectall").bind('change', function(){

        if($(this).prop('checked')){
            $(".checkbox").not(':checked').click();
        }else{
            $(".checkbox:checked").click();
        }
  });
于 2012-09-05T22:15:25.620 回答