现在我有一个基本的购物车设置。当用户输入他们的信息时,我想将此数据写入XML文件。为此,我一直在使用提交表单的POST方法。但是,我只想提交此表格,以便在符合条件时保存(例如使用正则表达式确保电话号码中没有字母)。
所以我的表格是这样的:
<form action= "confirmation.php" name="memberData" method="post">
<input name="textField" id="textField"></input>
<input type="submit" name="submitbutton" id="submitbutton" onclick="submitIt()" value="Submit Button"/>
</form>
所以我想要的是调用这个submitIt()函数来检查数据是否有效。如果它有效,那么我想执行我的表单操作。否则,我希望它不会重定向,直到用户修复其输入的信息。现在它确实正确地警告用户不正确的字段,但在重定向并保存信息之后立即。
如果表单操作符合某些条件,是否有办法执行表单操作?
答案 0 :(得分:5)
您要在此处执行的操作是在您的案例表单提交中阻止事件的默认操作。要做到这一点,处理程序应返回false。为了使其工作,您必须将处理程序从提交按钮的onClick更改为表单的onSubmit。
您还可以在此处阅读有关活动的一些内容http://www.quirksmode.org/js/introevents.html。
答案 1 :(得分:4)
你可以这样做:
<form ... onsubmit="return submitIt();">
其中submitIt()
是一个javascript函数,如果有效则返回true,如果无效则返回false。
答案 2 :(得分:2)
您需要通过取消正在处理的事件来停止处理表单。请参阅this example。
请注意,如果禁用JavaScript,这显然不会运行,因此您仍需要在服务器端执行这些检查,并在服务器端适当地处理验证错误。
答案 3 :(得分:1)
另外,请查看许多JQuery插件。
http://plugins.jquery.com/plugin-tags/form-validation
通过一些简单的示例并在页面中正确包含所有内容后,表单验证在您的所有网站上变得非常简单灵活。
另外,我真的看到需要客户端验证而不会让用户离开页面,但是不要忘记在提交表单时你仍然必须清理并检查表单字段。恶意用户可以简单地禁用JavaScript以通过验证,或者用NoScript运行的用户甚至不会意识到正在进行验证。