表单遍历非空check,求人帮做JS
求高手帮我把JS函数做好
最完美的给分最多,对我有启发的也给分html如下:<html>
<head>
<title>遍历check</title>
</script>
    <script language="JavaScript" type="text/JavaScript"><!--hide from older browser
    function check(){
//请求高手解答
//就是Form里Table所有行的Text元素非空
//若有非空的话,文本框背景变为红色,不提交表单
//否则提交表单
}
    //-->
    </script>
</head><font SIZE="5"><b>遍历check</b></font><br /><form name="ha22kForm" method="post" action="XxxAction.do">
    
    <table border="1">
                <tr>
                    <td nowrap="nowrap">
                     1
                     <input type="hidden" name="ha22kResult[0].utext99" value="1">
                    </td>
                    <td nowrap="nowrap">
                     <input type="hidden" name="ha22kResult[0].utext4" value="4">
                    </td>
                    <td nowrap="nowrap">
                     <input type="text" name="ha22kResult[0].utext3" maxlength="6" size="6" value="3">
                    </td>
                    <td nowrap="nowrap">
                     <input type="text" name="ha22kResult[0].utext1" maxlength="20" size="20" value="下面还有很多类似的文本框">
                    </td>
                </tr>
            
                <tr>
                    <td nowrap="nowrap">
                     1
                     <input type="hidden" name="ha22kResult[1].utext99" value="1">
                    </td>
                    <td nowrap="nowrap">
                     <input type="hidden" name="ha22kResult[1].utext4" value="4">
                    </td>
                    <td nowrap="nowrap">
                     <input type="text" name="ha22kResult[1].utext3" maxlength="6" size="6" value="3">
                    </td>
                    <td nowrap="nowrap">
                     <input type="text" name="ha22kResult[1].utext1" maxlength="20" size="20" value="下面还有很多类似的文本框">
                    </td>
                </tr>
            
             <tr>
                    <td nowrap="nowrap">
                     1
                     <input type="hidden" name="ha22kResult[2].utext99" value="1">
                    </td>
                    <td nowrap="nowrap">
                     <input type="hidden" name="ha22kResult[2].utext4" value="4">
                    </td>
                    <td nowrap="nowrap">
                     <input type="text" name="ha22kResult[2].utext3" maxlength="6" size="6" value="下面还有很多类似的行">
                    </td>
                    <td nowrap="nowrap">
                     <input type="text" name="ha22kResult[2].utext1" maxlength="20" size="20" value="下面还有很多类似的文本框">
                    </td>
                </tr>
        
        
        
    </table>    
        共100件


<table>
<tr>
<td>

<input type="button" name="check" value="check" onclick="check();">
</td>
</tr>
</table>

</form></body>
</html>

解决方案 »

  1.   

    <html>
    <head>
    <title>遍历check</title>
        <script language="JavaScript" type="text/JavaScript"><!--hide from older browser
    function checkForm() {
         var _form = document.getElementsByName("ha22kForm")[0];
         var eText = _form.getElementsByTagName("INPUT");
         for(var i = 0;i<eText.length;i++){
              if(eText[i].type.toUpperCase() == 'TEXT')
              eText[i].parentNode.style.backgroundColor='red';
         }
    }
        //-->
        </script>
    </head>
    <body>
    <font SIZE="5"><b>遍历check</b></font><br /><form name="ha22kForm" method="post" action="XxxAction.do">
        
        <table border="1">
                    <tr>
                        <td nowrap="nowrap">
                            1
                            <input type="hidden" name="ha22kResult[0].utext99" value="1">
                        </td>
                        <td nowrap="nowrap">
                            <input type="hidden" name="ha22kResult[0].utext4" value="4">
                        </td>
                        <td nowrap="nowrap">
                            <input type="text" name="ha22kResult[0].utext3" maxlength="6" size="6" value="3">
                        </td>
                        <td nowrap="nowrap">
                            <input type="text" name="ha22kResult[0].utext1" maxlength="20" size="20" value="下面还有很多类似的文本框">
                        </td>
                    </tr>
                
                    <tr>
                        <td nowrap="nowrap">
                            1
                            <input type="hidden" name="ha22kResult[1].utext99" value="1">
                        </td>
                        <td nowrap="nowrap">
                            <input type="hidden" name="ha22kResult[1].utext4" value="4">
                        </td>
                        <td nowrap="nowrap">
                            <input type="text" name="ha22kResult[1].utext3" maxlength="6" size="6" value="3">
                        </td>
                        <td nowrap="nowrap">
                            <input type="text" name="ha22kResult[1].utext1" maxlength="20" size="20" value="下面还有很多类似的文本框">
                        </td>
                    </tr>
                
                    <tr>
                        <td nowrap="nowrap">
                            1
                            <input type="hidden" name="ha22kResult[2].utext99" value="1">
                        </td>
                        <td nowrap="nowrap">
                            <input type="hidden" name="ha22kResult[2].utext4" value="4">
                        </td>
                        <td nowrap="nowrap">
                            <input type="text" name="ha22kResult[2].utext3" maxlength="6" size="6" value="下面还有很多类似的行">
                        </td>
                        <td nowrap="nowrap">
                            <input type="text" name="ha22kResult[2].utext1" maxlength="20" size="20" value="下面还有很多类似的文本框">
                        </td>
                    </tr>
            
            
            
        </table>    
            共100件
        
        
        <table>
            <tr>
                <td>
                    
                    <input type="button" name="check" value="check" onclick="checkForm();">
                </td>
            </tr>
        </table>
        
    </form></body>
    </html>
      

  2.   

    //传入参数
    //searchClass: 被搜索的class
    //node:被搜索的节点及子节点
    //tag:被搜索的标签
    //楼主,用你那点分换这个函数我觉得我亏了。 
    //你所要的效果可以从这个函数改。
    var getElementsByClassName = function (searchClass, node,tag) {
        if(document.getElementsByClassName){
            return  document.getElementsByClassName(searchClass)
        }else{
            node = document.getElementById(node) || document;
            tag = tag || "*";
            var classes = searchClass.split(' '),
            elements = (tag === "*" && node.all)? node.all : node.getElementsByTagName(tag),
            patterns = [],
            returnElements = [],
            current,
            match;
            var i = classes.length;
            while(--i >= 0){
                patterns.push(new RegExp("(^|\\s)" + classes[i] + "(\\s|$)"));
            }
            var j = elements.length;
            while(--j >= 0){
                current = elements[j];
                match = false;
                for(var k=0, kl=patterns.length; k<kl; k++){
                    match = patterns[k].test(current.className);
                    if (!match)  break;
                }
                if (match)  returnElements.push(current); 
            }
            return returnElements;
        }
    }
      

  3.   

    function checkForm() {
         var _form = document.getElementsByName("ha22kForm")[0];
         var eText = _form.getElementsByTagName("INPUT");
         for(var i = 0;i<eText.length;i++){
              if(eText[i].type.toUpperCase() == 'TEXT' && eText[i].value == '')
              eText[i].parentNode.style.backgroundColor='red';
         }
    }漏了非空检测
      

  4.   

    关键是表格的每行里都有
    input type="text" name="ha22kResult[N].utext3" 
    N取值为0,1,2,3,4,到N怎么定位啊?
    楼上几位的我都看了下 看不懂哦
      

  5.   

    补充下:浏览器用IE6吧,以IE6为标准呵呵
      

  6.   


    我这个循环是从FROM中获得每一个 TYPE=TEXT 的 INPUT 进行检查是否为空如果是你这里说的这个,很简单,用 document.getElementsByName("ha22kResult["+ i +"].utext3")[0]
    即可
      

  7.   

    4楼的 看的满脑浆糊6楼的 还可以 功能基本满足能否再进一步?
    只检查每行的utext3,不管utext4,
    如何做呢?
    这个也帮我搞出来吧
      

  8.   

    function checkForm() { 
        var _form = document.getElementsByName("ha22kForm")[0]; 
        var eText = _form.getElementsByTagName("INPUT"); 
        //正则匹配name
        var eName = /^ha22kResult\[\d+\].utext3$/;
        for(var i = 0;i <eText.length;i++){ 
              if(eText[i].type.toUpperCase() == 'TEXT' && eText[i].value == '' && eName.test(eText[i].name)) 
              eText[i].parentNode.style.backgroundColor='red'; 
        } 
    }