0

我有一个登录表单,用户在其中输入用户名和密码以尝试登录他的个人资料。我想在开始进行服务器端处理之前动态验证两个字段是否都已填写。


<form id="form" method="post" action="student.jsp">

          <label><strong>Username :</strong><br/><br/>
          <input type="text" value="" name="username" id="idusername">
        </label><br/><br/>

          <label><strong>Password :</strong><br/><br/>
          <input type="text" value="" name="password" id="idpassword">
            </label><br/><br/><br/>

          <input id="minibutton" name="send" type="submit" value="Login" />
        </form>

我正在使用 javascript,只要用户名留空并且我们尝试登录,它就会正确验证并发出警报。但是,密码字段并没有这样做,我们可以将其留空。


$(document).ready(function(){
//global vars
var form = $("#form");
var username= $("#idusername");
var password = $("idpassword");

//On Submitting
form.submit(function(){
    if(username.val().length==0 || password.val().length==0){
                    alert('Please enter the username');
        return false;
                    }
    else
    {
                if(password.val().length==0)
                    {
                        alert('Please enter the password');
                        return false;
                    }

                 else   
                    return true;
    }
});
});

我不擅长 javascript,但我需要使用它进行动态验证。Plaese指出验证密码字段的错误。

4

3 回答 3

6

缺少的哈希符号:

var password = $("idpassword");

应该:

var password = $("#idpassword");
于 2012-06-24T19:41:35.137 回答
4

更改var password = $("idpassword");var password = $("#idpassword");

于 2012-06-24T19:41:59.943 回答
1

也在你的逻辑中:

if(username.val().length==0 || password.val().length==0){
    alert('Please enter the username');
    return false;
}
else{
    if(password.val().length==0)
    {
        alert('Please enter the password');
        return false;
    }
    else   
        return true;
}

如果用户名或密码为空,它总是会说“请输入用户名”,因为它与 if 子句匹配,

你应该把它改成 2 if's

if(username.val().length==0){
    alert('Please enter the username');
    return false;
}
if(password.val().length==0){
    alert('Please enter the password');
    return false;
}
return true;

这样,它会检查用户名是否已填写,如果密码已填写,如果两者都填写,则返回 true,否则,如果其中一个为空,则将其标记为空并返回 false。

希望这可以帮助

于 2012-06-24T19:46:25.160 回答