我有一个带有提交按钮的表单,并通过onclick = ....附加了一个验证器。当我点击提交按钮时,验证器被执行并返回false。表格仍然提交。怎么会这样?
为了进一步缩小问题,我甚至将代码暂时更改为:
<form id="contactform" method="post" action="cgi-bin/process_contact_form.rb">
....
<input type="submit" value="Abschicken" onclick="false && k_validate('de')" />
</form>
这只会返回false并绕过我的验证器。实际上,即使在这个版本中,表单也会被提交。
请注意,我知道有办法通过绕过验证器来提交表单。我在这里只对“正常”情况感兴趣,即当用户明确点击按钮时。
我已在Mac OSX 10.6.8上使用以下浏览器对此进行了测试:
SeaMonkey 2.0.14 Safari 5.1.10 Chrome 36.0
当然,启用了JavaScript。
可以在此处看到带有上述“假”快捷方式的测试页:
http://www.tsukaeru-doitsugo.de/testing.html
它有两个按钮。第一个按钮(标记为“Abschicken”)是表单中的按钮。它的onclick处理程序返回false,但表单仍然提交。
答案 0 :(得分:5)
你错过了return语句:
<input type="submit" value="Abschicken" onclick="return k_validate('de')" />