日期:2014-05-17  浏览次数:20726 次

js表单验证只通过第一项就提交了
function checkInput(frm){
//检查用户名......
if(frm.user.value.length<1){
frm.user.select();
frm.user.focus();
alert("用户名不能为空!");
return false;
}
if(getLength(frm.user.value)>20||getLength(frm.user.value<4)){
frm.user.focus();
frm.user.select();
alert("用户名必须为4-20个字符!");
return false;
}
//检查密码.....
if(frm.password.value==""){
frm.password.focus();
frm.password.select();
alert("密码不能为空!");
return false;
}
if(getLength(frm.password.value)>20){
frm.password.focus();
frm.password.select();
alert("密码长度不能超过20!");
return false;
}
return true;
}
<form action="loginServlet" method="post" name="frm" onsubmit="return checkInput(this);" >
为什么用户名验证通过后直接提交了?
能帮忙解答下吗?
------解决方案--------------------
提交了说明验证成功啊! 你这样的代码看不出那里验证数据  最好把结果贴上来再带上你写的数据!
------解决方案--------------------
if(frm.password.value==""){
alert 你的密码看看 前后加上一个字符 。。 f你的密码f
------解决方案--------------------

alert("用户名不能为空!");

这句话有没有弹出来?

------解决方案--------------------
alert("用户名不能为空!");
这个出来了,但是输入密码为空的时候
alert("密码不能为空!");这个没出来,急死了
------解决方案--------------------
if(frm.password.value=="")照你说的,应该是if没进去。也就是说password!=""你可以比照用户名的验证用length验证下。
------解决方案--------------------
length也不行,就是说只能将第一个if执行了,后面的就没音了
------解决方案--------------------
在火狐下firebug调试,,看看
------解决方案--------------------
if(frm.password.value==null )试试
------解决方案--------------------
引用:
alert("用户名不能为空!");
这个出来了,但是输入密码为空的时候
alert("密码不能为空!");这个没出来,急死了


if(frm.user.value.length<1){
frm.user.select();
frm.user.focus();
alert("用户名不能为空!");
return false;
}
这里已经return false了,之后的都不会执行了。
------解决方案--------------------
if( frm.password.value==null 
------解决方案--------------------
 frm.password.value=="" )
试一下。
或者和用户名采用相同的判断方式
if( frm.password.value.length < 1 )

最好把代码贴全,现在看不出你的密码输入位置是如何定义的 
------解决方案--------------------
==“” 一个条件判断不了。不能把它作为唯一条件 。
------解决方案--------------------
没填怎么能用""来判断呢?