用户输入不是通过onblur函数获得的

时间:2014-02-08 17:42:27

标签: javascript html

我一直在javascript和html中尝试表单验证。我坚持使用onblur()。想法是用户输入他的名字。如果他在没有输入任何内容的情况下离开输入区域(文本框),则应显示错误消息。 但根据我的下面的代码,即使我输入任何内容,它仍然显示警报没有输入名称。

   <form>
            <input type="text" id="fn" value="First Name" onfocus="fnm()"        onblur="chfnm()"/>
    </form>

    function fnm()
    {
            document.getElementById("fn").value="";  //clears default value of textbox
    }

function chfnm()
    {  
            var f=document.getElementById("fn");    
        for(var i=0;i<f.length;i++)
            {
                    if(i!=(f.length-1))
                            fname= fname +f.elements[i].value +"<br>";
                    else
                        fname= fname+ f.elements[i].value;
            }

            if(fname=="")  //error is fname is always an empty string
            {
                    alert("Please fill your first name");
                    document.getElementById("fn").focus();  
            }


    }

我是javascript的新手,所以任何新的想法都会受到赞赏和欢迎。

2 个答案:

答案 0 :(得分:0)

只需添加html5的必需标记,就不需要添加额外的java脚本函数来检查

答案 1 :(得分:0)

如果您想验证用户是否输入了该名称,您只需使用此代码即可。如果是这样,您将使用for loop添加额外的代码。

function fnm(){
        document.getElementById("fn").value="";  //clears default value of textbox
}
var fname = "";
function chfnm(){ 
    fname = document.getElementById("fn").value;    
    if(fname==""){  
        alert("Please fill your first name");
        document.getElementById("fn").focus();  
    }else{
        alert("your name " + fname);
    }
}

DEMO