如果快速单击保存按钮,为什么会多次提交?

时间:2015-10-26 07:14:02

标签: asp.net-mvc

我有一个部分视图,它是一个自举弹出窗口。每件事情都运转良好,但如果我快速点击一个按钮,直到pop离开表格并多次提交记录。还有远程验证,它工作正常。但这是第一次,表单多次提交多次提交。为什么呢?

1 个答案:

答案 0 :(得分:1)

快速双击按钮或链接可能会产生意想不到的后果,例如表单被提交两次或同一进程并行运行并遇到竞争条件。要停止这种意外行为,您可以编写简单的java脚本代码来禁用该按钮,或者使用一个标志来维护该表单是否已提交。例如:

<script type="text/javascript">
  function isFormSubmitted(form) // Submit button clicked
  {
    form.submitButton.disabled = true;
    return true;
  }

  var isSubmitted = false;
  function isFormSubmitted(form) // global variable
  {
    if (!isSubmitted) {
        isSubmitted = true;
        return false; 
    }

    return true;
  }

</script>