如何在第一次单击时禁用Jquery提示保存按钮

时间:2014-05-16 13:51:02

标签: javascript jquery knockout.js impromptu

我正在使用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);
        }
    }
});

2 个答案:

答案 0 :(得分:0)

尝试使用全局变量作为标志, 或禁用提示按钮(如果您使用按钮来调用提示) $("#promptbutton&#34)。丙("禁用",TRUE);

编辑:

更简单的解决方案是在调用saveUpdates函数之前或在函数的开头简单地关闭提示:

jQuery.prompt.close();

答案 1 :(得分:0)

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

解决方案有点复杂。我认为有一种更简单的方法可以做到这一点,但在查看documentation后,我找不到任何内置功能。<​​/ p>

以下是代码:

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

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

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