我有一个登录表单,用户在其中输入用户名和密码以尝试登录其个人资料。我想在开始进行服务器端处理之前动态验证两个字段都已填满。
<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,但我需要将它用于动态验证。在验证密码字段时出现错误。
答案 0 :(得分:6)
缺少的哈希符号:
var password = $("idpassword");
应该是:
var password = $("#idpassword");
答案 1 :(得分:5)
将var password = $("idpassword");
更改为var password = $("#idpassword");
答案 2 :(得分: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子句匹配,
如果是
,你应该把它改成2if(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。
希望这有帮助