建议这种检查时到最后点击“提交”按钮的时候才检查,一来这样更为友好,二来也没有你说的问题了。
如果你决意用你的方法,可以这样:
首先明确每次只会发生一种错误,如果你点到text2这个是应该text2没有错,因为这个时候,还没有输入内容,虽然text1的内容出错了。所以text2的判断错误的函数应该检测一下初始值和空值的问题,如果是空值的话不作错误提示。还是到了最后提示。建议这种检查时到最后点击“提交”按钮的时候才检查

解决方案 »

  1.   

    agree, field-level validation is normally used in windows client applications, for web pages, you should use form-level validation
      

  2.   

    就是嘛,放在表单的onsubmit事件中检查文本框的内容。
      

  3.   

    问题就在text1和text2都是必须输入项目。客户就是这样要求的,必须在鼠标离开的时候检查。
    一般的时候不会出现我说的上面的死锁,但是只要有一次出现的话,我就完蛋了。;(
      

  4.   

    do not do it in onblur, try it in onchange
      

  5.   

    <input onblur="t(this)" name=text1>
    <input onblur="t(this)" name=text2>
    <script>
    function t(o)
    {
    if(o.value.length<5)
    {
    alert(" 请输入长度大于5")
    o.focus()
    }
    }
    </script>最好用onpropertychange事件
      

  6.   

    其实你用两个text的检查也很莫名的,如果我是用户的话,我根本不跳到那个框里,而直接提交表单了,你那个text就根本无法检验了!!!
      

  7.   

    一、在form提交的时候用onsubmit来检查正确与是否为空
    二、你在每个text框里可以用onkeypress来检查输入的内容是否正确呀。
    <script language=javascript>
    function document.onkeypress(){
      var s = window.event.keyCode;
      if (!(((s>=48) && (s<= 57)) || ((s>=65) && (s<=90)) ||
            ((s>=97) && (s<=122)) ||  (s==13) || (s==27)  ||
             (s==45) || (s==95))){
        alert("对不起!您输入了非法字符!");
        window.event.keyCode = 0 ;}
      }
    </script>
      

  8.   

    `to net_lover(孟子E章)你的代码我试过了,还是死锁了。
    而且onpropertychange好像更不可靠了。真的不能解决吗?很疑惑阿。
      

  9.   

    to  Reve(仨仁仕) 比如说text1是要输入年,text2是要输入月,还有一个日。
    他们都是必须输入项目阿,都不能为空的。问题在输入年的时候,我输入了字母,这时候肯定不对,人为的用tab键跳到月,这时候会alert(年输入不对),这个时候焦点会离开text2(月),让你去确认刚才的那个alert,确认后焦点又自动设到text1(年),但是离开text2的onblur也触发了,所以alert(月输入不对),这样就一直alert了。各位大虾,帮帮我吧,这几天我都是小心翼翼的测试。头痛阿。
      

  10.   

    to meizz(梅花雨)好像你的方法2也不好用,怎么办?
    实在不知道怎么解决了。
      

  11.   

    to abigfrog(☆★千年精灵★☆) 改为onChange好像也不对,
    如果我把焦点放到年里面,然后什么也不输入,就跳到月里面,这时候应该有alert才对阿。
    用onchange好像达不到。
      

  12.   

    先谢谢大家了,我还是把代码贴一些出来好了。
    ///////////////////
    // ERROR MESSEGE //
    ///////////////////
    function ErrorMsg(z_name,z_msg)
    {
    alert(z_msg);
    document.Form2[z_name].focus();
    document.Form2[z_name].select();
    }
    </script>    <td><input name="year" type="text"
    onblur="ErrorMsg('year','11111') " maxlength="2">
            年</td>
        <td><input name="month" type="text"
    onblur="ErrorMsg('month','2222') "maxlength="2">
            月</td>
      

  13.   

    <script>
    ///////////////////
    // ERROR MESSEGE //
    ///////////////////
    var ="";
    function ErrorMsg(z_name,z_msg)
    {
      if(==""||==z_name){
         if(document.Form2[z_name].value!="99"){ //check value function...
    alert(z_msg);
    document.Form2[z_name].focus();
    document.Form2[z_name].select();
         }else{
     = "";
    return;
         }
      }
      =z_name;
    }
    </script><form name=Form2>
    <table><tr>
        <td><input name="year" type="text" onblur="ErrorMsg('year','11111');" maxlength="2">
            年</td>
        <td><input name="month" type="text" onblur="ErrorMsg('month','2222');=false" maxlength="2">
            月</td>
    </tr>
    </table>
    </form>
      

  14.   

    谢谢dylanOK(岱岚) ,我可以交差了。再谢了。