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