以下是我目前检查所有复选框的内容,这些复选框位于下拉列表中。
_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);
}
});
这会更新复选框,以便在屏幕上直观显示所有选中或取消选中的内容。我有一个按钮,告诉我viewmodel的状态,即复选框是true还是false。问题是,当selectall工作并检查所有内容时,viewmodel没有得到这些更改的更新,即每次单击select all复选框时,无论是否选中它们,单击测试按钮时一切都会保持为假。当我单击全选时,我需要一些方法来更新viewmodel。整个程序非常复杂,但如果您需要更多了解我的问题,请告诉我。
这是我的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 }
]
});
答案 0 :(得分:2)
尝试这样的事情
$("#selectall").bind('change', function(){
if($(this).prop('checked')){
$(".checkbox").not(':checked').click();
}else{
$(".checkbox:checked").click();
}
});