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

一般此类表格都是通过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. Information centric network (icn) node based on switch and network process using the node

    The present invention relates to an apparatus for supporting information centric networking. An info ...

  2. Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking

    A method of transferring data between a software defined network (SDN) and an information-centric ne ...

  3. WPF中StringFormat的用法

    原文:WPF中StringFormat的用法 WPF中StringFormat的用法可以参照C#中string.Format的用法 1. C#中用法: 格式化货币(跟系统的环境有关,中文系统默认格式化 ...

  4. HierarchicalDataTemplate

    针对具有分层数据结构的控件设计的,比如说TreeView,相当于可以每一个层级上做DataTemplate XmlDataProvider:数据源,写在Resources下 <XmlDataPr ...

  5. Lambda表达式的参数捕获

    以常用的Action委托为例: 有如下3个无参数的方法: public void Function() { //Do something } public void Function2() { //D ...

  6. NUGET源不存在,安装Nuget包提示“本地源不存在”

    困扰了两天的问题,终于找到原因了.因此来这里记录一下~ 前两天写项目时,要从NUGET上安装个第三方库,但不管是从可视化的管理器还是管理器控制台安装,都提示“本地源‘*******’不存在”.然后到网 ...

  7. Win8 Metro(C#)数字图像处理--2.57一维最大熵法图像二值化

    原文:Win8 Metro(C#)数字图像处理--2.57一维最大熵法图像二值化  [函数名称] 一维最大熵法图像二值化WriteableBitmap EntropymaxThSegment(Wr ...

  8. 将多个文本文件内的数据导入到Datagridview

    private BindingList listXSxxInfoList = new BindingList(); openFileDialog1.Multiselect = true;//允许选择多 ...

  9. C#从列表中取元素的某个字段组成新的列表

    using System; using System.Collections.Generic; using System.Linq; namespace CSharpDemo { class Prog ...

  10. Dec Working Note

    01 新的一个月,也是16年最后一个月,意义非凡. 那么第一天就要来点非凡的意义:提出离职. 纠结了好久,最后还是离职了,感觉是好他妈的爽,纠结什么呢. 不过今天状态不好,最近状态一直不好,上火,也没 ...