javascript:onsubmit只在检测到“return false”时才执行

时间:2012-09-16 17:27:32

标签: javascript html

我不太明白onsubmit="return validate()"是如何运作的。 为什么我必须return这个功能?仅当它从语句中检测到return false时才能工作吗?

<script type="text/javascript">
    function validate() {
        if ((document.example2.naming.value == "") || (document.example2.feed.value == "")) {
            alert("You must fill in all of the required .fields!");
            return false;
        }
        else {
            return true;
        }
</script>

<form name="example2" onsubmit="return validate()">
<input type="submit" name="B1" value="Submit">​​​​​​​

2 个答案:

答案 0 :(得分:13)

使用return onsubmit确定表单是否实际提交(分别为truefalse)。当您想要在允许表单提交之前执行特定操作时,这对Javascript很有用。例如,与您提供的代码一样,关键是如果表单无效,则停止表单提交 - 如果某个字段为空。重要的是,您需要在onsubmit部分中包含return,并在您调用的函数中实际返回truefalse。这是因为onsubmit的行为始终完成,除非您返回false。所以,当你做类似的事情时:

onsubmit="validate();"

没有返回任何内容(因为缺少return) - 所以函数运行但是就是这样,所以提交了表单。当您添加return时,提交取决于返回值 - 从函数返回的内容。如果您不使用return,则validate函数返回的内容无关紧要,因为validate的结果实际上并未返回onsubmit

答案 1 :(得分:1)

return false时,您阻止提交form。否则,表单将被提交,即使它可能有验证错误,例如feed值为空。

另一方面,如果您return true,表单数据将提交到action属性定义的网址。