双击保存时的预防

时间:2017-10-20 18:52:33

标签: javascript kendo-grid

我有一个带有dataSource的kendo网格,网格有一个带保存按钮的编辑器对话框。我需要阻止双击保存按钮。单击保存按钮时会激活onsave功能。我有一个requestEnd事件,在重新启用保存时触发。

问题:onSave1在100中看起来失败1次。它基于添加额外的单击处理程序,调用preventDefault()。它存在根本缺陷吗?

onSave2更好吗?

onSave1: function (e) {
    $(event.srcElement)
    .addClass("k-state-disabled")
    .bind("click", disable = function (e) { e.preventDefault(); return false; })
    this.dataSource.one("requestEnd", function () {
        $("[data-role=window] .k-grid-update")
            .off("click", disable)
            .removeClass("k-state-disabled");
    })
}

onSave2: function (e) {     
    $(event.srcElement)
        .removeClass(".k-grid-update")
        .addClass("k-state-disabled")
        .addClass("disabledMarker");
    this.dataSource.one("requestEnd", function () {
        $("[data-role=window] .disabledMarker")
            .addClass(".k-grid-update")
            .removeClass("k-state-disabled")
            .removeClass("disabledMarker");
    })
}

1 个答案:

答案 0 :(得分:0)

自版本3.0以来,第一个Jquery绑定已被弃用,因此我建议不再使用它。 http://api.jquery.com/bind/

您不需要onClick事件或在您的案例中绑定,因为在单击期间已经调用了onSave。所以只需禁用onSave按钮。其次,你应该使用完整或任何kendo网格用于替换完成保存事件或requestEnd。代码如下。

     onSave: {$(event.srcElement)addClass("k-state-disabled")}, complete:{ $(event.srcElement)removeClass("k-state-disabled")};