此代码中onsubmit事件处理程序的返回用法是什么

时间:2016-01-18 20:34:31

标签: javascript

我不知道为什么在此代码中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>

4 个答案:

答案 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事件,则取消表示不提交表单。

HTML5 spec about event handler attributes

相关问题