这基本上是我的形式:
<form method="post" action="" onsubmit="checkallfields(); event.preventDefault();">
<!-- My Stuff -->
</form>
这是我页面上的第一个表单。我有客户端字段验证,显然存储在函数中checkallfields()。但问题是,用户可能很调皮,打开控制台并输入document.forms[0].submit(),然后表单仍然会提交。
我该如何防止这种情况?
这基本上是我的形式:
<form method="post" action="" onsubmit="checkallfields(); event.preventDefault();">
<!-- My Stuff -->
</form>
这是我页面上的第一个表单。我有客户端字段验证,显然存储在函数中checkallfields()。但问题是,用户可能很调皮,打开控制台并输入document.forms[0].submit(),然后表单仍然会提交。
我该如何防止这种情况?
你无法阻止它。这就是您需要进行服务器端验证的原因,也是您应该始终进行服务器端验证的原因。客户端不可信,我什至不需要您的网页提交到您的服务器。
我思考了这个问题,得到了自己的答案。在谷歌浏览器中测试过。
var i = document.forms.length;
while (i--) {
document.forms[i].submit = function () {
return false;
}
}
它对你们有用吗?你可以在这里查看:http: //jsfiddle.net/think123/ZRuYw/
只需将文档上的该功能设置为 false。
document.forms[0].submit = function () {
return false;
}