我不太了解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
可以确定表单是否实际提交(分别为true
或false
)。当您想在允许或不提交表单之前做一些特定的事情时,这对于Javascript很有用。例如,就像您提供的代码一样,重点是如果表单无效-如果某个字段为空白,则阻止表单提交。重要的部分是,您需要在onsubmit部分中包括return
,并在调用的函数中实际返回true
或false
。这是因为onsubmit
的行为将始终完成,除非您返回false
。因此,当您执行以下操作时:
onsubmit="validate();"
不返回任何内容(由于缺少
return
)-运行该函数,仅此而已,因此提交了表单。当您添加return
时,提交取决于返回值-函数返回的值。如果您不使用return
,那么validate
函数返回什么都没有关系,因为validate
的结果实际上并未返回到onsubmit
。