我不知道为什么在此代码中onsubmit
事件处理程序中再次使用return?
return
已在此代码中使用过两次
首先在js函数中(调用函数return false
)
在onsubmit
<!DOCTYPE html>
<html>
<head>
<script>
function validateForm() {
var x = document.forms["myForm"]["fname"].value;
if (/*x == null ||*/ x == "") {
alert("Name must be filled out");
return false;
}
}
</script>
</head>
<body>
<form name="myForm" action="demo_form.asp"
onsubmit="return validateForm()" method="post">
Name: <input type="text" name="fname">
<input type="submit" value="Submit">
</form>
</body>
</html>
答案 0 :(得分:0)
如果从false
事件处理程序返回onsubmit
,则会阻止将表单提交给服务器。所以基本上这会将validateForm
函数的返回值传播给onsubmit
处理程序。
我还建议您更新validateForm
以确保始终返回布尔结果,而不仅仅是在负面情况中:
function validateForm() {
var x = document.forms["myForm"]["fname"].value;
if (/*x == null ||*/ x == "") {
alert("Name must be filled out");
return false;
}
// In this case we return true and allow the form to be submitted.
return true;
}
答案 1 :(得分:0)
如果x为空,则返回false确保帖子未提交给服务器。你究竟是什么问题?如果return
为假,则会停止帖子,以便填写fname
字段。
答案 2 :(得分:0)
一个返回是在函数内部实际返回值。另一个返回是在onsubmit
属性内部传递它,因此表单可以作用于它。
答案 3 :(得分:0)
return
函数中的validateForm
定义函数的返回值。
onsubmit
属性中的一个定义了整个事件处理程序的返回值。对于大多数事件类型,如果处理程序返回布尔值false
(规则有几个例外),则浏览器应解释我们要取消事件。如果发生submit
事件,则取消表示不提交表单。