防止双击<input type =“submit”/>

时间:2016-08-02 12:10:41

标签: javascript c# jquery html asp.net-mvc

是否有可能阻止用户在输入标签按钮类型提交中单击两次? 我试过ondblclick =&#34; javascript:void(0)&#34; 但它不起作用

我的Html.BeginForm不是表单元素标记

感谢所有的帮助!

3 个答案:

答案 0 :(得分:1)

您可以尝试一次点击事件,禁用第二次点击事件

$( "#XXXXX" ).one( "click", function() {
     alert( "This will click only once." );
});

答案 1 :(得分:0)

一些想法

将类似的内容添加到您的JavaScript代码中:

 var tryNumber = 0;
 $('input[type=submit]').click(function (event) {
     var self = $(this);

     if (self.closest('form').valid()) {
         if (tryNumber > 0) {
             tryNumber++;
             // if you want an alert:
             // alert('Your form has been already submited. wait please');
             return false;
         }
         else {
             tryNumber++;
         }
     };
 });

另一个想法 - MVC动作过滤器

创建一个自定义ActionFilter,它将跟踪请求并添加延迟值。此博客上有good explanation。当然这需要一些努力,但最终只需要在Request函数上有一个自定义属性。

我的2美分

我个人会说这是不正确的方式来看问题。

您无法阻止您的网页出现在每个不需要的用户互动中。大多数情况下,用户正在按预期完成不同的事情。

相反,我会使我的POST请求稳定并超越我的逻辑以确保没有数据被破坏。

有一些设计模式,例如Post/Redirect/Get模式。

答案 2 :(得分:0)

点击提交按钮

$('.submitButton').prop('disabled',true);