我正在使用jQuery提示来提示用户进行保存。因此,用户单击“保存”按钮,将显示Jquery提示,并询问用户是否确定要保存更改。问题是,在提示关闭之前,用户可以多次单击jQuery Save提示按钮。结果,每次单击提示保存按钮时,我的保存例程都会运行一次,这将导致数据库中的记录重复。我需要在第一次单击时禁用提示保存按钮,或者只是在第一次单击时关闭提示窗口以防止多次保存。我怎样才能做到这一点?

客户代码:

$.prompt("Are you sure you want to save? You will not be able to change your decision after it's been saved.", {
    title: "Save?",
    buttons: { "Save": true, "Cancel": false },
    submit: function (e, v, m, f) {
        if (v) {
            response = saveUpdates(LoanDetails);
        }
    }
});

最佳答案

我在这里创建了一个小提琴:http://jsfiddle.net/smurphy/4fqjR/

解决方案有点令人费解。我以为会有一种更简单的方法,但是在浏览documentation之后,我找不到任何内置功能。

这是代码:

submit: function (value, message) {
        if (value) {
            $(message.prevObject)
               .find('button[value="true"]')
               .attr('disabled', true);

            //TODO: perform save
            //response = saveUpdates(LoanDetails);
        }
    }


message参数是对文本描述的引用,因此您可以通过从该起点浏览DOM来找到按钮。

09-25 16:53
查看更多