Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在第一次单击时禁用Jquery提示保存按钮_Javascript_Jquery_Knockout.js_Impromptu - Fatal编程技术网

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

Javascript 如何在第一次单击时禁用Jquery提示保存按钮,javascript,jquery,knockout.js,impromptu,Javascript,Jquery,Knockout.js,Impromptu,我使用jQuery提示符提示用户保存。因此,用户单击一个保存按钮,Jquery提示符显示并询问用户是否确定要保存更改。问题是,在提示关闭之前,用户可以多次单击jQuery保存提示按钮。因此,每次单击“提示保存”按钮时,我的保存例程都会运行一次,这会导致数据库中出现重复记录。我需要在第一次单击时禁用提示保存按钮,或者在第一次单击时关闭提示窗口以防止多次保存。我该怎么做 客户端代码: $.prompt("Are you sure you want to save? You will not be a

我使用jQuery提示符提示用户保存。因此,用户单击一个保存按钮,Jquery提示符显示并询问用户是否确定要保存更改。问题是,在提示关闭之前,用户可以多次单击jQuery保存提示按钮。因此,每次单击“提示保存”按钮时,我的保存例程都会运行一次,这会导致数据库中出现重复记录。我需要在第一次单击时禁用提示保存按钮,或者在第一次单击时关闭提示窗口以防止多次保存。我该怎么做

客户端代码:

$.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);
        }
    }
});

尝试使用全局变量作为标志, 或者禁用提示按钮(如果您使用按钮调用提示) $(“#提示按钮”).prop(“已禁用”,true)

编辑:

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

jQuery.prompt.close();
我在这里创作了一把小提琴:

解决方案有点复杂。我原以为会有一个更简单的方法来实现它,但在浏览之后,我找不到任何内置功能

代码如下:

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

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

消息
参数是对文本描述的引用,因此您可以从该起点在DOM中导航来找到按钮。

这更适合作为注释,因为它不提供OP问题的答案。顺便说一句,如果你点击问题中的标签,它们可能会引导你找到插件。:)哦,对不起,我没有注意到指向插件的标签,我将编辑我的答案。Thanks@JayBlanchard,交易者应该怎么做,因为他没有足够的代表来添加评论?老实说@ScottMurphy,他应该做足够的工作来获得足够的代表来发布评论。在我尝试放置jQuery.prompt.close()时,它已经被讨论过了;在if(v)中,但不起作用。我确实有,但它不会影响jQuery提示符上的保存按钮,只影响输入(它会禁用输入,而不是jQuery提示符按钮)。哦!误解了您的问题。已将问题更新为目标提示save ButtonTanks Scott,但仍不起作用。不会这么难的。好吧,我创建了一个fiddle来调试并弄清楚到底传递给submit函数的参数是什么。这应该适合您。您可能希望删除knockout.js标记,因为它在代码中没有任何地方使用。