tjw*_*way 6 javascript form-submit onsubmit preventdefault
我有一个产生大量垃圾邮件的表单。我已经完成了所有需要的输入并附上了验证码。这没有任何影响。
我假设机器人正在使用form.submit(),因为某种原因这绕过了我所有的必填字段,也绕过了我的onsubmit="check(e)"
我似乎.submit()无论如何都无法抓住这个事件。有谁知道如何捕捉这个事件并确保它被取消。我希望提交表单的唯一方法是单击提交按钮。
$("#myForm").submit(function(event) {
console.log("Handler for .submit() called.");
if (CaptchaInput.value == "") {
event.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)
我应该.submit()接听电话并阻止表单提交的代码。该功能永远不会被触发。
<form target="hidden_iframe"
onsubmit="if (CaptchaInput.value == '') { why += '- Please Enter CAPTCHA Code.\n'; alert(why); return false; };return checkform(this)" id="myForm">
Run Code Online (Sandbox Code Playgroud)
你不能。我可以在不使用浏览器或禁用 JavaScript 的情况下提交您的表单。任何人都可以直接向您的服务器发送 HTTP POST 请求,而无需执行您可能引入的任何客户端流程。
问题的解决方案是也在服务器上进行验证,并且不要依赖客户端验证来成功完成(或者实际上,甚至根本不依赖于客户端验证已运行)。
将客户端验证视为对用户的一种方便,他们会立即看到错误,而无需重新输入并重新提交整个表单。
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |