当我从onsubmit返回false时,为什么我的HTML表单仍然会提交?

Asi*_*sif 9 html javascript forms

我写了一个简单的脚本来验证登录表单,如下所示:

<script type="text/javascript">
    function validateLoginForm(){
    var idV = document.forms["LoginForm"]["id"].value;
    var pwdV = document.forms["LoginForm"]["pwd"].value;

    if (idV == null || idV == "" || idV.length < 5) {
          alert("user ID must be filled and of more than 4 characters!!");
          id.focus();
          return false;
    }

    if (pwdV == null || pwdV == "" || pwdV.length < 5) {
        alert("Password must be filled and of more than 4 characters!!");
        pwd.focus();
        return false;
    }

    return true;
}
</script>
Run Code Online (Sandbox Code Playgroud)

并称之为:

<form name="LoginForm" method="POST" onsubmit="return validateLoginForm()" action="Login" >
.
.
.
.
</form>
Run Code Online (Sandbox Code Playgroud)

问题是javaScript在我正确设置时发出警报,但最后Loginservlet也自动调用,这是一个错误的事情.为什么会发生这种情况?有解决方案吗

Vas*_*ily 6

重定向到登录是因为您有 js 错误。

您没有定义变量idpsw.

所以当你尝试id.focus()psw.focus()- 你有js错误并默认返回true

所以添加这个代码:

var id = document.forms["LoginForm"]["id"];
var pwd = document.forms["LoginForm"]["pwd"];
var idV = document.forms["LoginForm"]["id"].value;
var pwdV = document.forms["LoginForm"]["pwd"].value;
Run Code Online (Sandbox Code Playgroud)