假设我现在有N个文本框。
想实现如下效果:
1。当最后一个文本框之前的所有文本框只要有任何一个文本框为空值,则最后一个文本框的值为:“存在空值”
2。当最后一个文本框之前的所有文本框都已经不为空值时,则最后一个文本框的值为:“全部OK”
3。自动foucs到空值的文本框,当存在多个空值时,每填写完一个文本则自动foucs下一个空值文本框
请大家多多帮忙

解决方案 »

  1.   

    只提供思路:
    1.把所有文本框的name设为一样,如a
    2.使用document.getElementsByName("a")获取所有文本框DOM
    3.用循环语句判断是否存在空值
    4.当有空值做相关操作
    5.当没有空值做相关操作
    6.将上述2-5作为一函数绑定到文本框事件如onblur上.
      

  2.   

    <script>
    function abc(){
    var inp = document.getElementsByName("a");
    for(var i=0; i<inp.length; i++){
    var j=inp[i];
    if(i!=inp.length-1 && j.value==""){
    j.focus();
    inp[inp.length-1].value="有空值";
    return;
    }else if(i==inp.length-1){
    j.value="没空值";
    }
    }
    }
    </script>
    <input name="a" onblur="abc()"/>
    <input name="a" onblur="abc()"/>
    <input name="a" onblur="abc()"/>
    <input name="a" onblur="abc()"/>
    不是没头绪吧.是不想自己做...
      

  3.   

    非常感谢
    我一方面是没头绪
    另一方面自己写了如下一段代码
    但是会出错
    var   list=document.getElementsByTagName('input'); 

                    for(var   j=1;j <list.length-1;j++){ 

                    if(list[j].value ==""){ 
                    document.getElementById("_judge").value="测定中"
                document.getElementById("_judge").style.color="#FF9900"
    document.getElementById("_judge").style.fontWeight="bold"
                    } else if(list[j].value !=""){
    document.getElementById("_judge").value="已完成"
                document.getElementById("_judge").style.color="green"
    }
                    } 
    错误是:当倒数第二个文本框不为空时,就会显示"已完成"
    那怕是前面都是空的
      

  4.   

    因为你第一个判断没用return截断.
      

  5.   

    你循环次数就少了
      for(var   j=1;j <list.length-1;j++){ 应该是:
      for(var   j=0;j <list.length-1;j++){ 其次, 逻辑错误。第一个if中,满足条件就应该return;
      

  6.   

    非常感谢两位的大力帮忙,我都不好意思了!
    犯了一些低级错误.
    我模仿着写了一段代码:
    var inp = document.getElementsByTagName('input'); 
        for(var i=1; i<inp.length; i++){
            var j=inp[i];
            if(i!=inp.length-1 && j.value==""){
                inp[inp.length-1].value="测定中";
    inp[inp.length-1].style.color="#FF9900";
    inp[inp.length-1].style.fontWeight="bold";
                return;
            }else if(i==inp.length-1){
                inp[inp.length-1].value="已完成";
    inp[inp.length-1].style.color="green";
    inp[inp.length-1].style.fontWeight="bold";
    return;
            }
    else if(i==inp.length-1 && j.value!="" &&j.style.color=="green"){
                inp[inp.length-1].value="OK";
    inp[inp.length-1].style.color="green";
    inp[inp.length-1].style.fontWeight="bold";
            }
        }
    想通这段代码实现:
    当文本框(不含最后一个)所有都不为空且字体颜色为绿色时
    最后一个文本框="OK".
    不知道那里出了问题,一直不成功
    还请两位再指点一下
      

  7.   


    <body>
        <input id="Text2" type="text" /><br />
        <input id="Text1" type="text" />
        <br />
        <input id="Text3" type="text" />
        <br />
        <input id="Text4" type="text" /><br />
        <input id="Text5" type="text" /><br />
        <input id="Button1" type="button" value="测试" onclick="return Button1_onclick()" /></body>
    </html>
    <script type="text/javascript">
    function Button1_onclick() {
        var inp = document.getElementsByTagName('input');
        var isOk=true; //判断是否全部OK
        var notOkNo= 0; //不OK的文本框序号
        
        for(var i=0; i<inp.length-2; i++){
            if(inp[i].value==""){
                isOk=false;
                notOkNo=i;
                break;
            }
        }
        if(isOk){
            inp[inp.length-2].value="OK";
            inp[inp.length-2].style.color="green";
            inp[inp.length-2].style.fontWeight="bold";
        }
        else{
            inp[inp.length-2].value="第"+(notOkNo+1)+"个input出了问题";
            inp[notOkNo].focus();   //焦点跳到出现问题的文本框
            isOk=true;
            notOkNo= 0;
        }
    }
    </script>