Javascript 取消剑道网格中的“单击绑定”复选框

Javascript 取消剑道网格中的“单击绑定”复选框,javascript,jquery,kendo-ui,kendo-grid,Javascript,Jquery,Kendo Ui,Kendo Grid,请参阅以下问题: 我在剑道网格中有一个布尔值复选框。当用户单击复选框时,将显示一个引导模式对话框,提示用户确认正在执行的操作。(不用担心它的功能,这样很好。) 问题是,如果他们取消确认对话框,我想撤消他们对复选框的更改。(我需要撤销它以使网格与数据保持同步,因为只有在他们单击“确定”时才会调用更新基础数据。) 模板如下所示: { title : "Active", field : "uaa", template: "<input name='active' class=

请参阅以下问题:

我在剑道网格中有一个布尔值复选框。当用户单击复选框时,将显示一个引导模式对话框,提示用户确认正在执行的操作。(不用担心它的功能,这样很好。)

问题是,如果他们取消确认对话框,我想撤消他们对复选框的更改。(我需要撤销它以使网格与数据保持同步,因为只有在他们单击“确定”时才会调用更新基础数据。)

模板如下所示:

{
  title   : "Active",
  field   : "uaa",
  template: "<input name='active' class='userActiveToggle' type='checkbox' data-bind='checked: uaa' #= uaa ? checked='checked' : '' #/>"
}
我还尝试过禁用模板中的复选框,这是可行的,但之后该函数根本无法启动。有人能告诉我这是否可能吗?如果没有,我可以用命令按钮代替

(哦,在模式的submit click中调用data.set可能是多余的。在添加复选框之前,我最初从命令按钮复制了这段代码。这里的计划是如果可以的话去掉按钮。)

Try
$(e.target).attr('checked',isActive)而不是
$(e.target)。选中=激活

这是最有效的

更新:
可能函数在更改值之前运行,因此必须将值更改为
!i活动
。试试看

更新#2:
别忘了使用e.preventDefault。。。如果是这样,则必须手动更改选中的参数。这就是你需要的。仅在确认后更改变量


你也可以使用removeAttr()。

我讨厌回答自己的问题。。。答案是忘记复选框,并使用命令替换为按钮,但根据绑定的数据动态更改按钮的文本。我的字段定义现在是:

    { field: 'Manage users', template: '<a href="\\#" class="k-button link">#= uaa ? "Deactivate user" : "Activate user" #</a>', width: 125 },

}))

不,没用。看起来你不能在用户点击后改变它的值。。。甚至不需要直接设置输入项。。。设置数据项时,网格通常会立即刷新更改,至少是通过命令按钮。我现在无法测试它的工作方式,但可能函数在更改值之前运行,因此您必须将值更改为
!i活动
。让我看看这是否有效
    { field: 'Manage users', template: '<a href="\\#" class="k-button link">#= uaa ? "Deactivate user" : "Activate user" #</a>', width: 125 },
$("#AccountsGrid").on("click", ".link", function (e) {
var grid = $('#AccountsGrid').data().kendoGrid;
var tr = $(e.target).closest("tr");
var data = grid.dataItem(tr);

$('.modal-confirm').modal({ show : false, keyboard : true, backdrop : true });
$('.modal-confirm .modal-header h3').text('Modify User');
var userName = data.uau;
var isActive = data.uaa;
var modifyDescription =  isActive ?  'deactivate' :  'activate';

$('.modal-confirm .modal-body p').html('Are you sure you want to '+ modifyDescription + ' the user, ' + userName + '?');
$('.modal-confirm .cancel').html('Cancel');
$('.modal-confirm .submit').html('OK').addClass('btn-danger');

$('.modal-confirm .submit').click(function(e){
    if (hc.ActivateUser(userName, !isActive))
        data.set('uaa', !isActive);
    $('.modal-confirm').modal('hide');
    $('.modal-confirm .submit').unbind().on('click', null);
});

$('.modal-confirm').modal('show');