两种表格提交方法之间的差异

时间:2012-01-24 06:20:01

标签: javascript

这两种表单提交方法有什么区别?

<form method="post" action="gert.php" onsubmit="return validate()">
    <p>Enter an email address:</p>
    <input id='email'>
    <button type='submit' id='validate'>Validate!</button>
</form>

<form method="post" action="gert.php" onSubmit='validate(); return false;'>
    <p>Enter an email address:</p>
    <input id='email'>
    <button type='submit' id='validate'>Validate!</button>
</form>

如果表单未填写,我正在使用第一个提交表单并在JavaScript false函数中返回validate()。刚才在另一个网站上,我看到第二个被使用了。我无法弄清楚差异,所以我想知道我是否仍然使用旧的方法来做这些事情,或者两者是否意味着相同的事情?我在第二种方式思考,只有在执行thisform.submit语句时才会提交表单。当我执行表格时我才明白这一点,但我仍然想知道两者之间的主要区别是什么?

2 个答案:

答案 0 :(得分:2)

如果来自validate()的回复 truthy ,则只会提交第一个示例。

第二个示例将验证表单(call validate())但它永远不会被提交,因为 falsy 值被发送回事件处理函数将取消默认的浏览器行为

答案 1 :(得分:0)

第一个,如果validate()返回true,则会提交您的表单。 第二个,无论validate()返回什么,表单都不会被提交。(但表单可以在validate函数中提交。)