问几个表单验证问题!
这是代码:程序代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. xmlns="http://www. http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <script language="javascript"> <!-- function f1(){ if(document.getElementById("usr").value==""){ document.getElementById("right1").innerHTML=""; alert("用户名不可以为空"); document.getElementById("usr").focus();//为什么这句在firefox下没有作用?想要实现用户点击确定后在自动跳转到usr输入框在firefox下应该怎样实现? }else{ document.getElementById("right1").innerHTML="正确"; } } function f2(){ var a=document.form.psw1.value if(a==""){ document.getElementById("right2").innerHTML="" alert("密码不能为空"); }else if(a.length<6||a.length>=15){ document.getElementById("right2").innerHTML=""; alert("密码必须大于等于6位且小于15位"); //想在这加入个js语句,可以在alert功能完成后,实现已经输入的错误的密码(比如长度是4位的)自动清除,用什么方法?为什么下面的语句无法实现这个效果? //document.getElementById("psw1").value=""; }else if(6<=a.length&&a.length<15){ document.getElementById("right2").innerHTML="正确"; } } function f3(){ if(document.form.psw2.value==document.form.psw1.value){ document.getElementById("right3").innerHTML="正确" }else if(document.form.psw2.value!=document.form.psw1.value){ document.getElementById("right3").innerHTML="" alert("确认密码和密码不相同"); } } function f4(){ if(document.form.phone.value==""){ document.getElementById("right4").innerHTML="" alert("联系电话不可以为空"); }else{ document.getElementById("right4").innerHTML="正确" } } //--> </script> <body> <form name="form" id="form" > <table width="762" border="0" cellpadding="0" cellspacing="0"> <tr> <th width="215" scope="col">用户名:</th> <td width="275"><input type="text" name="usr" id="usr" onblur="f1()" /></td> <td id="right1"></td> </tr> <tr> <th scope="row">密码:</th> <td><input type="password" name="psw1" id="psw1" onblur="f2()" /></td> <td id="right2"> </td> </tr> <tr> <th scope="row">确认密码:</th> <td><input type="password" name="psw2" id="psw2" onblur="f3()" /></td> <td id="right3"> </td> </tr> <tr> <th scope="row">电话号码:</th> <td><input type="text" name="phone" id="phone" onblur="f4()" /></td> <td id="right4"> </td> </tr> <tr> <th scope="row"> </th> <td><input type="reset" name="reset" /></td> <td><input type="submit" name="submit" /></td> </tr> </table> </form> </body> </html>
有几个问题已经在js代码那注释了,还有下面的问题:
1:我在输入了用户名后,然后点击reset按钮,用户名里面的内容是清空了,但是为什么后面还是会显示正确呢?有什么解决办法没?
2:如果我现在要是直接按sumit按钮,那我写的几个函数不就没法实现验证用户是否已经输入了内容了吗?我还想写个函数,在onsubmit是调用,是判断用户是否已经填写完整的,我的函数是这样的:
程序代码:
function f5(){ if(f1()!=true){ f1() return false; }else if(f2()!==true){ f2() return false; }else if(f3()!==true) f3() return false; }elseelse if(f4()!==true){ f4() return false }else { document.write("欢迎注册") return true } }
其中的f1(),f2()等的返回值我在测试的时候是加上去的,上面给的那段代码上没有给出,然后我在form内加上了onsubmit事件执行f5()这个函数,可是这个函数没有任何效果?这样写有错么?如果有错,是不是逻辑上的错误,还是什么错误?
那正确的方法有该如何实现呢?