现有多个input,同时失去焦点时才执行a,只要焦点在其中一个上都不执行a 
 
请问这个用js怎么验证?

解决方案 »

  1.   

    我不知道有没有办法获取当前焦点控件,如果有,为了这个输入验证对所有焦点进行监听也是很低效的方法,
    事实上我觉得onblur这种验证都是一个非常不友好的方法,因为别人有可能要移动焦点去别的地方去查看,或者去复制,这种情况一直不允许用户离开焦点,是非常令人恼怒的。
    好的方法当然是执行行为的时候再统一验证,比如提交的时候
      

  2.   

    http://www.cnblogs.com/deadshot123/archive/2006/11/03/549009.html
      

  3.   


    如果你非要这么做也是可以的,有个笨办法比较麻烦,你先获取 所有的input , 然后每个input 都注册一个onblur 事件, 当执行玩一个新的input onblur的时候计个数,当计的这个数等于所有的input 的 length的时候就做你想做的事, 当然这种方法很不对,建议你还是换种思想实现,比如1楼说的建议用个按钮做一次性的提交验证。
      

  4.   

    <script type="text/javascript">
    function a(){
    var ts=document.getElementsByTagName("input");
    for(var i=0;i<ts.length;i++){
    if(ts[i].type=="text"){
    ts[i].setAttribute("focus","false");
    ts[i].onblur=mm;
    ts[i].onfocus=ss;
    }
    }
    }
    function ss(){
    this.setAttribute("focus","true");
    }
    function mm(){
    this.setAttribute("focus","false");
    window.setTimeout("kk()",50);

    }
    function kk(){
    var ts=document.getElementsByTagName("input");
    for(var i=0;i<ts.length;i++){
    if(ts[i].type=="text"){
    if(ts[i].getAttribute("focus")=="true"){
    return;
    }
    }
    }
    alert("ok");
    }
    window.onload=a;
    </script>
    </head><body>
    <input type="text"><br/>
    <input type="text"><br/>
    <input type="text"><br/>
    <input type="text"><br/>
    这样试试
      

  5.   

    http://www.cnblogs.com/deadshot123/archive/2006/11/03/549009.html