| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 906 人关注过本帖
标题:问几个表单验证问题!
只看楼主 加入收藏
xd04053045
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-25
收藏
 问题点数:0 回复次数:1 
问几个表单验证问题!
这是代码:
程序代码:
<!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">&nbsp;</td>
    </tr>
    <tr>
        <th scope="row">确认密码:</th>
        <td><input type="password" name="psw2" id="psw2" onblur="f3()" /></td>
        <td id="right3">&nbsp;</td>
    </tr>
    <tr>
        <th scope="row">电话号码:</th>
        <td><input type="text" name="phone" id="phone" onblur="f4()"  /></td>
        <td id="right4">&nbsp;</td>
    </tr>
    <tr>
        <th scope="row">&nbsp;</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()这个函数,可是这个函数没有任何效果?这样写有错么?如果有错,是不是逻辑上的错误,还是什么错误?
那正确的方法有该如何实现呢?
搜索更多相关主题的帖子: 表单 验证 
2008-11-25 16:52
frankqnj
Rank: 4
等 级:贵宾
威 望:12
帖 子:320
专家分:278
注 册:2008-4-6
收藏
得分:0 
document.getElementById("usr").focus()
ff 下可以用的
//想在这加入个js语句,可以在alert功能完成后,实现已经输入的错误的密码(比如长度是4位的)自动清除,用什么方法?为什么下面的语句无法实现这个效果?
node.value='';

1:我在输入了用户名后,然后点击reset按钮,用户名里面的内容是清空了,但是为什么后面还是会显示正确呢?有什么解决办法没?

这个 还是你的逻辑问题 你可以在reset上 写个onclick事件 然后清除 那些信息

2:如果我现在要是直接按sumit按钮,那我写的几个函数不就没法实现验证用户是否已经输入了内容了吗?我还想写个函数,在onsubmit是调用,是判断用户是否已经填写完整的,我的函数是这样的:

你可以在 提交按钮上 先写上onclick="return func();"
function func(){
判断是否 全部合乎要求 return true
不合要求 return 这样就提交不上去了
}
或者 你 把submit改成 button

如果验证通过 则执行 form.submit(); 也就提交上去了.否则 什么也不做或提示 有错误.
2008-11-26 00:13
快速回复:问几个表单验证问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014549 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved