aspx页面上有许多个动态生成的标签(非服务器控件),它们的className是一致的   Name  Gender
1 _____  ______
2 _____  ______
3 _____  ______
    提交
某一行填写了一列,必须把这一行都填写完整,否则不能提交,该怎么验证呢,求大虾帮忙!!

解决方案 »

  1.   

    function formSubmit(){
    //大概是这个逻辑,小变动按需修改
    var allTags = document.getElementById("id").getElementsByTagName("*");
    //保证你所要判定的那些标签都是这个id之下。
    for(var i=0;i<allTags.length;i++){
    if(allTags[i].className == "classname" && !allTags[i].value && !allTags[i].innerHTML){
    //判定className是否相等,是否有值。
    return false;
    }
    }
    return true;
    }试试
      

  2.   

    可以先通过id获取父元素 然后再通过tagName获取子元素,只要就不会获取那么多了,然后再看class name是什么来判断是不是你想要的元素
      

  3.   

    <textarea name="sbd_repeater1$Repeater1$ctl00$txtbox_ggzysx|0" rows="2" cols="20" id="sbd_repeater1_Repeater1_ctl00_txtbox_ggzysx|0" class="usernameFldinput"></textarea>贴一个标签出来,都是系统生成的,name和id都是根据字段名生成来的
      

  4.   

    $("table input[type='text']").each(function(){
    if($(this).val()=="") return false;
    })
      

  5.   

    既然是动态生成的,那么生成的时候同一行的元素(输入框,按钮等等)的ID都给加一个相同的数字,比如行数。第一行的就叫submit1,name1,code1,XXX1。
    当点到submit1时就去看name1,code1是否为空。
    以上为笨办法。要少写代码就用jquery的each来写。
      

  6.   

    提供思路
    获取整个表格,然后用each 循环
    然后验证具体的某个单元格 可以用find("td:nth-child(1)") 的方式来获取
    例如
    $("table tbody tr").each(function(){
      //比如验证第一行第一个文本框
     var first=  $(this).find("td:nth-child(1)").val()
     或者
     var first =$(this).find("input:first").val() ;
    });
    类似于这样,循环里面出错了就做记录 就可以了
      

  7.   

    谢谢大家,我已经做完了,顺便也说一下我的思路吧,嘿嘿。
    我先是用each循环table然后读出每个td里的textarea是否为空,不为空,再判断整个tr,如果textarea为空的话,就用parent()获取到td的index(),在这里就已经可以知道为空的标签是哪一个了。ps:我这个是要做成通用的判断,目前在做一个erp