我做的一个登录界面,在客户端判断用户名和密码是否为空!
在js写了一个函数validate(有参数)
然后判断参数是username还是password进行的处理。
最后用onblur事件
可是出现页面卡掉!
大家有谁遇到过这种情况?
然后又是怎么解决 的?

解决方案 »

  1.   

    <html>
    <head>
    <script>
    function validate(pvalue)
    {
    var current=document.getElementById(pvalue).value;
    if(current.length==0)
    {

    if(pvalue=="username")
    {

    document.getElementById("un").innerHTML="<font color=red>用户名不能为空!</font>";
    document.getElementById("username").focus();
    }
    else if(pvalue=="password")
    {
    document.getElementById("ps").innerHTML="<font color=red>密码不能为空!</font>";
    document.getElementById(pvalue).focus();
    }

    }
    }
    </script>
    </head>
    <body>
    <form>
    <table>
    <tr><td>用户名</td><td><input type="text" name="username" id="username" onblur=validate("username")></td><td id="un"></td><tr><tr><td>密码</td><td><input type="password" name="password" id="password" onblur=validate("password")></td><td id="ps"></td></tr>
    </table>
    </form>
    </body>
    </html>以前那个代码没有,这是我简单的写了一下。运行结果是浏览器没有响应!
      

  2.   

    是啊,代码的逻辑问题。
    当焦点落在username时没有输入,离开然后进入password。这期间的事件是这样的:
    首先触发的是username的onblur事件,显示提示问题,然后焦点重现聚焦到username;
    由刚才的焦点在password到现在的username,又触发了password的onblur事件;
    ……
    ……
    就这样进入死循环了。
    ^_^
      

  3.   

    其实没必要用onblur检查是不是输入了,要是人家不经意点了一下,这还走不了呢。不人性。(点登录按钮也可以啊)
      

  4.   

    嗯,明白了!谢谢大家!zhansen_7030提示的很到位!谢谢!