0

这基本上是我的形式:

<form method="post" action="" onsubmit="checkallfields(); event.preventDefault();">
  <!-- My Stuff -->
</form>

这是我页面上的第一个表单。我有客户端字段验证,显然存储在函数中checkallfields()。但问题是,用户可能很调皮,打开控制台并输入document.forms[0].submit(),然后表单仍然会提交。

我该如何防止这种情况?

4

3 回答 3

2

你无法阻止它。这就是您需要进行服务器端验证的原因,也是您应该始终进行服务器端验证的原因。客户端不可信,我什至不需要您的网页提交到您的服务器。

于 2012-11-11T00:47:28.117 回答
0

我思考了这个问题,得到了自己的答案。在谷歌浏览器中测试过。

var i = document.forms.length;
while (i--) {
  document.forms[i].submit = function () {
    return false;
  }
}

它对你们有用吗?你可以在这里查看:http: //jsfiddle.net/think123/ZRuYw/

于 2013-02-17T22:02:33.187 回答
0

只需将文档上的该功能设置为 false。

document.forms[0].submit = function () {
  return false;
}
于 2019-12-13T00:43:51.360 回答