成功提交后无意表格提交

时间:2013-01-17 14:56:31

标签: jquery ajax asp.net-mvc-3 forms

我们的网站有一个注入jQuery对话框的表单。在输入表单数据并单击提交按钮(jQueryUI对话框按钮)后,表单首先通过javascript验证,然后提交给服务器。我发现在将值粘贴到一个强制文本框并提交后,偶尔在下次打开表单时,它会尝试立即提交,而无需用户单击按钮(我在每次调试语句之前验证了这一点) .submit()的实例,仅在单击按钮时提交表单时才会被点击。

是否还有其他人遇到过非预期表单提交的实例,除了服务器端验证之外,还有什么方法可以解决它?

为了清楚起见,事件的顺序如下:

  1. 用户单击“添加”按钮,获取表单(部分视图)并将其注入对话框,然后打开对话框。
  2. 用户将值粘贴到必填文本框中(还有其他几个控件)。
  3. 用户点击执行低级别验证的“提交”按钮,并通过ajax提交表单,成功后关闭对话框。
  4. 冲洗并重复直至:
  5. 用户单击“添加”按钮,该按钮获取表单并将其注入对话框,该对话框将打开并立即提交,无法在服务器上进行验证。
  6. Form.submit回调

        $("#SearchEdit>form").submit(function (e) {
            if (TermPresent()) {
                return true;
            } else {
                e.preventDefault();
                return;
            }
        });
    
    function TermPresent() {
        return ($("textarea#MySearch_SearchTerms").val() != "" ? true : false);
    }
    

1 个答案:

答案 0 :(得分:2)

您可以将type="submit"更改为type="button",然后从验证码的底部更新,而不是让表单自行提交。