我不太了解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">​​​​​​​

最佳答案

使用return作为onsubmit可以确定表单是否实际提交(分别为truefalse)。当您想在允许或不提交表单之前做一些特定的事情时,这对于Javascript很有用。例如,就像您提供的代码一样,重点是如果表单无效-如果某个字段为空白,则阻止表单提交。重要的部分是,您需要在onsubmit部分中包括return,并在调用的函数中实际返回truefalse。这是因为onsubmit的行为将始终完成,除非您返回false。因此,当您执行以下操作时:

onsubmit="validate();"

不返回任何内容(由于缺少return)-运行该函数,仅此而已,因此提交了表单。当您添加return时,提交取决于返回值-函数返回的值。如果您不使用return,那么validate函数返回什么都没有关系,因为validate的结果实际上并未返回到onsubmit

10-07 19:38
查看更多