应用场景:最近的项目中二级子页面遍历生成、操作表格比较多,记录一下一直用的遍历方法。

一般此类表格都是通过ajax请求数据,然后从callbackFunction中获取数据集合,遍历生成表:

eg:

var postData=new Object();

    postData.idString=idString;

    $.ajax({

    url:'debt/findXXXList.do'+'?t='+Math.random()+'&token='+token,

    data:postData,

    type:'POST',

    dataType:'json',

    success:function(data){

        //初始化数据

        $("#confirmInf").empty();

        for(var i=0;i<data.length;i++){

            var inf=data[i];

            var realname=inf.real_name;

            var amount=inf.original_amount_cny;

            var debtID=inf.debtID;

            var html='<tr><td><a class="name" title='+realname+' style="margin-right:0px;">'+realname+'</a></td>';

            var html2='<td class="abstract shuheixian"><input type="text" id="detils" placeholder="摘要内容不超过20个字" debtid='+debtID+' maxlength="20" autofocus></td>';

            var html3='<td class="sum">'+amount+'</td><td class="sum"></td>';

            var html4='<td class="sum">'+amount+'</td></tr>';

            $("#confirmInf").append(html+html2+html3+html4);

        }

        //弹出窗口

        var maskHight=$(document).height();

        var maskWidth=$(document).width();

        $('<div class="mask"></div>').appendTo($('body'));

        $('div.mask').css ({

              'opacity':0.5,

              'background':'#000',

              'position':'absolute',

              'left':0,

              'top':0,

              'width':maskWidth,

              'height':maskHight,

              'z-index':9999

        });

        $('.accept_contain').show();

        gaoduDIV();//样式

        $(".accept_contain input").eq(0).focus();

   },

    error:function(){

        console.log("error初始化数据出错。。。");

        //发送请求给发送邮件接口(邮件接口处理掉异常信息),调用给后台提示尽快修复

        var pageName="new/receivedClaims";

        var type ="findReceivedDebtPageList===初始化弹窗失败===jsp434行";

        tips("系统升级中,请稍后进行尝试。",false);

    },

 });

此时,弹出二级页面,并且循环生成了表格数据。

这时候,需要对表格中的input标签内容进行验证,而常规的通过id获取标签的方式不能准确定位到某条循环生成的数据.

此时分为两种情况:

1、获取某一行中编辑过的多条数据。

这个需要定位到每个标签,并且从标签中获取我们所需要的数据。对应着标签结构慢慢找并不难:

//验证

    if(!validate()){

        return false;

    }

    var dataStr="";

    var flag=1;
    var Obj1=document.getElementsByClassName("dataInfo");//关键!获取所有tr标签,然后根据结构去一层层的找

    for (var i=0;i<Obj1.length;i++ ){

        var obj=Obj1[i].childNodes;

        var type ="claims";

        var debtid=obj[0].attributes["debtid"].value;

        var debtstatus=obj[0].attributes["debtstatus"].value;

        var detils=obj[2].childNodes[0].value;

        var amount1=obj[3].childNodes[0].value;

        var amount2=obj[4].childNodes[0].value;

        //数据合法性调整

        if(amount1==""){amount1=0};

        if(amount2==""){amount2=0};

        

        //str拼接

            if(flag==1){

                dataStr+=debtstatus+"&.&"+debtid+"&.&"+detils+"&.&"+amount1+"&.&"+amount2+"&.&";

                flag=-1;

            }else{

                dataStr+="@*@"+debtstatus+"&.&"+debtid+"&.&"+detils+"&.&"+amount1+"&.&"+amount2+"&.&";

            }

        }

2、对每一行的某一列数据进行验证。

这个用的jquery:

//数据验证

function validate(){

    var result =true;

    //摘要字段验证
    $("#editInf input[id='intro'][type='text']").each(function(){//关键:选择器的使用 id为editInf的标签下所有 id=editInf 类型为text的标签

        var value=$(this).val();

        if(value==null||value==''||value.length==0){

            $(this).val("");

            $(this).attr("style","background-color: #FFC1C1");

            $(this).attr("placeholder","摘要不能为空");

            result = false;

        }

    });

    //金额1验证

    $("#editInf input[id='amount1'][type='text']").each(function(){

        

        var value=$(this).val();

        if(!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(value)){

            $(this).val("");

            $(this).attr("style","background-color: #FFC1C1");

            $(this).attr("placeholder","请填写数字");

            result = false;

        }

    });

    //金额2验证

    $("#editInf input[id='amount2'][type='text']").each(function(){

        var value=$(this).val();

        if(!/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/.test(value)){

            $(this).val("");

            $(this).attr("style","background-color: #FFC1C1");

            $(this).attr("placeholder","请填写数字");

            result = false;

        }

        

    });

    return result;

}

html、jsp页面标签的遍历的更多相关文章

  1. jsp 页面标签 积累

    http://www.cnblogs.com/xiadongqing/p/5232592.html <%@ taglib %>引入标签库 ========================= ...

  2. jsp页面中同时遍历多个list集合

    在Jsp页面中,我们也许有这样的需求:从后端获取到多个List,但又想将这些List的值同时打印出来 比如, 有用户列表userList,user类有用户ID.用户名.用户性别等基本信息 有用户关系列 ...

  3. JSP页面标签

    1.EL表达式中empty的用法 EL表达式中empty的用法 <c:if test="${! empty key}">${key}</c:if> < ...

  4. jsp c标签不遍历的方法

    生产中遇到过不需要遍历的事情. 一般遍历必须要 <c:forEach items="${resultObj.xxx}" var="data" varSta ...

  5. jsp页面中jstl标签详解

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

  6. 【转】jsp页面中jstl标签详解

    原文地址: JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实 ...

  7. 关于jsp中jstl-core标签循环遍历的使用

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...

  8. jsp页面中jstl标签详解[转]

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

  9. jsp页面file标签上传图片以及blob类型数据库存取。

    我的jsp页面表单如下: <form name="form1" action="/YiQu/AddUserServlet?jurisdiction=1" ...

随机推荐

  1. 如何诊断rac环境sysdate 返回的时间错误

    最近处理了若干rac环境访问sysdate错误的时间返回.而这个问题通常是一个数据库链接是由现在Listener创建的情况下.并且.大部分情况下都是和时区设置相关的.在这篇文章中我们会针对怎样诊断这样 ...

  2. linux_无秘登录问题(不生效)

    1 . 登录1,执行命令 ssh-keygen -t rsa 之后一路回 车,查看刚生成的无密码钥对: cd .ssh 后 执行 ll 2 .把 id_rsa.pub 追加到授权的 key 里面去. ...

  3. Node.js 中开源库探秘 object-assign | 全栈之路

    这篇内容呢,讲的是另一个技术栈 Node.js 系列,虽然和咱们这里的主题不是特别吻合,不过嘛,汲取多样性的养分是快速成长的好方法,也是现在流行的全栈工程师的必经之路. 由于这篇内容涉及的是 Node ...

  4. C# ToString() 数据格式

    double[] numbers= {1054.32179, -195489100.8377, 1.0437E21, -1.0573e-05}; string[] specifiers = { &qu ...

  5. LeapMotion Demo2

    原文:LeapMotion Demo2    官方doc有四个手势,最近尝试实现对握拳的识别,并能在我的程序界面上体现出来.    调试过程较为繁琐,幸好最终效果还差强人意! 首先看看我的效果图:   ...

  6. Kubernetes使用集群联邦实现多集群管理

    Kubernetes在1.3版本之后,增加了“集群联邦”Federation的功能.这个功能使企业能够快速有效的.低成本的跨区跨域.甚至在不同的云平台上运行集群.这个功能可以按照地理位置创建一个复制机 ...

  7. WPF值转换器的使用

    <Window x:Class="CollectionBinding.MainWindow"        xmlns="http://schemas.micros ...

  8. Selenium-等待

    分为3种 (1)就是通过线程强制等待 Thread.sleep(1000); (2)隐示等待.就是所有的命令都等待.分为3种 // 这个方法表示全局的等待.意思是针对所有的findElement方法都 ...

  9. WPF控件深拷贝:序列化/反序列化

    原文:WPF控件深拷贝:序列化/反序列化 今天DebugLZQ在做WPF拖动总结的时候,遇到了这个问题.baidu了下,貌似没有解决这个问题的权威答案,遂写下这篇博文. 我想做的事情是:拖动一个窗体内 ...

  10. Win10《芒果TV》商店版更新v3.7.0卡牌版:为小冰生日献礼,为秋季创意者更新铺路

    由宇宙跨物种新晋主持微软小冰和绍刚叔联袂主持的中国首档原创顶尖科技秀<我是未来>正在芒果台热播,Win10版<芒果TV>更新v3.7.0卡牌版,为微软小冰9月17日生日献礼. ...