相关疑难解决方法(0)

防止在jQuery中双重提交表单

我有一个表单,需要一段时间服务器来处理.我需要确保用户等待并且不再尝试通过再次单击该按钮重新提交表单.我尝试使用以下jQuery代码:

<script type="text/javascript">
$(document).ready(function() {
    $("form#my_form").submit(function() {
        $('input').attr('disabled', 'disabled');
        $('a').attr('disabled', 'disabled');
        return true;
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

当我在Firefox中尝试此操作时,所有内容都被禁用,但表单未提交任何它应包含的POST数据.我不能使用jQuery提交表单,因为我需要使用表单提交按钮,因为有多个提交按钮,我确定哪个用于POST中包含哪个值.我需要像往常一样提交表单,我需要在发生后立即禁用所有内容.

谢谢!

javascript forms jquery http-post double-submit-prevention

164
推荐指数
5
解决办法
18万
查看次数

如何防止表单从客户端多次提交?

有时,当响应很慢时,可能会多次单击"提交"按钮.

如何防止这种情况发生?

javascript submit

89
推荐指数
10
解决办法
12万
查看次数

是否使用Page_IsValid或Page_ClientValidate()(用于客户端事件)

我在按钮单击处理程序中有以下代码.这两种方法都很好.将Page_ClientValidate()导致一个额外的验证检查,并做处理而Page_IsValid利用现有的财产.

质询

  1. 如果点击按钮,是否始终保证Page_IsValid在那个时间计算?如果不能保证,我们需要Page_ClientValidate()明确调用.
  2. Page_IsValid设定之前发生的事件是什么?对于此类事件,我们不应该依赖Page_IsValid

UPDATE

是否确保仅在验证部分完成后调用按钮单击事件处理程序(在JavaScript中)(即,在作为验证的一部分调用Page_ClientValidate()之后)?如果可以肯定,我可以依赖Page_IsValid吗?

脚本

  $('#btnSave').click(function (e) {

  //Aproach 1
  var isValid = Page_ClientValidate('');
  if (isValid) 
  {
       //Do reamining work
  }

  //Aproach 2
  if (Page_IsValid)
  {
      //Do reamining work
  }

  });
Run Code Online (Sandbox Code Playgroud)

参考文献:

  1. 隐藏ASP.Net ValidationSummary中的冗余错误消息
  2. 验证器导致双击检查的不正确行为
  3. 未定义Page_ClientValidate
  4. Page_ClientValidate多次验证.
  5. MSDN - 深度ASP.NET验证

asp.net

7
推荐指数
1
解决办法
2万
查看次数