我们的网站有一个注入 jQuery 对话框的表单。输入表单数据并单击提交按钮(一个 jQueryUI 对话框按钮)后,表单首先由 javascript 验证,然后提交到服务器。我发现在将一个值粘贴到一个强制的文本框并提交后,有时当我下次打开表单时,它会尝试立即提交而无需用户单击按钮(我在每次之前使用调试器语句验证了这一点.submit()
仅当单击按钮提交表单时才被击中)。
有没有其他人遇到过意外提交表单的实例,除了服务器端验证之外,还有什么方法可以对抗它吗?
为了清楚起见,事件的顺序如下:
- 用户单击获取表单(部分视图)并将其注入对话框的添加按钮,然后打开对话框。
- 用户将一个值粘贴到强制文本框中(还有其他几个控件)。
- 用户单击执行低级别验证的提交按钮并通过 ajax 提交表单,成功后关闭对话框。
- 冲洗并重复直到:
- 用户单击“添加”按钮,该按钮获取表单并将其注入对话框,该对话框打开并立即提交,服务器验证失败。
Form.submit 回调
$("#SearchEdit>form").submit(function (e) {
if (TermPresent()) {
return true;
} else {
e.preventDefault();
return;
}
});
function TermPresent() {
return ($("textarea#MySearch_SearchTerms").val() != "" ? true : false);
}