我不太明白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">
答案 0 :(得分:13)
使用return
onsubmit
确定表单是否实际提交(分别为true
或false
)。当您想要在允许表单提交之前执行特定操作时,这对Javascript很有用。例如,与您提供的代码一样,关键是如果表单无效,则停止表单提交 - 如果某个字段为空。重要的是,您需要在onsubmit部分中包含return
,并在您调用的函数中实际返回true
或false
。这是因为onsubmit
的行为始终完成,除非您返回false
。所以,当你做类似的事情时:
onsubmit="validate();"
没有返回任何内容(因为缺少return
) - 所以函数运行但是就是这样,所以提交了表单。当您添加return
时,提交取决于返回值 - 从函数返回的内容。如果您不使用return
,则validate
函数返回的内容无关紧要,因为validate
的结果实际上并未返回onsubmit
。
答案 1 :(得分:1)
return
false
时,您阻止提交form
。否则,表单将被提交,即使它可能有验证错误,例如feed
值为空。
另一方面,如果您return true
,表单数据将提交到action
属性定义的网址。