html、jsp页面标签的遍历
应用场景:最近的项目中二级子页面遍历生成、操作表格比较多,记录一下一直用的遍历方法。
一般此类表格都是通过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页面标签的遍历的更多相关文章
- jsp  页面标签 积累
		http://www.cnblogs.com/xiadongqing/p/5232592.html <%@ taglib %>引入标签库 ========================= ... 
- jsp页面中同时遍历多个list集合
		在Jsp页面中,我们也许有这样的需求:从后端获取到多个List,但又想将这些List的值同时打印出来 比如, 有用户列表userList,user类有用户ID.用户名.用户性别等基本信息 有用户关系列 ... 
- JSP页面标签
		1.EL表达式中empty的用法 EL表达式中empty的用法 <c:if test="${! empty key}">${key}</c:if> < ... 
- jsp c标签不遍历的方法
		生产中遇到过不需要遍历的事情. 一般遍历必须要 <c:forEach items="${resultObj.xxx}" var="data" varSta ... 
- jsp页面中jstl标签详解
		JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ... 
- 【转】jsp页面中jstl标签详解
		原文地址: JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实 ... 
- 关于jsp中jstl-core标签循环遍历的使用
		JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ... 
- jsp页面中jstl标签详解[转]
		JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ... 
- jsp页面file标签上传图片以及blob类型数据库存取。
		我的jsp页面表单如下: <form name="form1" action="/YiQu/AddUserServlet?jurisdiction=1" ... 
随机推荐
- HistCite 引文分析软件的利器
			所需工具及网站清单, HISTCITE:DOWNLOAD YOUR FREE COPY. 提交自己的基本信息即可,十分简单: SCI数据库官网(web of science):http://apps. ... 
- C# ini
			C# ini文件操作[源码下载] 介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivat ... 
- 构建自己的PHP框架(路由)
			完整项目地址:https://github.com/Evai/Aier 上一篇中我们已经建立了一个空的 Composer 项目,本篇将讲述如何构建路由. 下面我们就开始自己来构建路由,先去 GitHu ... 
- python_matplotlib cannot import name _thread on mac
			最后的2行错误信息是 from six.moves import _thread ImportError: cannot import name _thread 1 2 发现是six出现了问题,用pi ... 
- Carthage 包管理工具,另一种敏捷轻快的 iOS & MAC 开发体验 | SwiftCafe 咖啡时光
			说起 iOS 开发的包管理,大家就不由得会想起 CocoaPods, 它确实是一个强大的工具.但这次咱们来关注另外一个包管理工具 Carthage,如果说 CocoaPods 像一个航母,一应俱全,坚 ... 
- SQLServer 远程服务器不存在,未被指定为有效的发布服务器,或您无权查看可用的发布服务器
			原文:SQLServer 远程服务器不存在,未被指定为有效的发布服务器,或您无权查看可用的发布服务器 创建了事务发布,在初始化时出现错误,查看相关代理信息如下: 日志读取器代理错误: 状态: 0,代码 ... 
- select ,update 加锁
			最近我在弄一个项目,其中涉及到了数据批量导入数据库的过程,在导入数据的时候,每一条数据会生成一个唯一标识,但是我发现有些数据的标识重复了.我在网上查了一下说这是“数据库 并发性”的问题解决方案,上锁. ... 
- ARTS 12.31  - 1.4
			Algorithm 这是一道需要用动态规划的问题.求字符串的最长回文子序列. 复习了一遍动态规划,重点是要分析出最优解所包含的子问题的最优解,把过程描述为数学公式. 题目https://leetcod ... 
- ASP.NET获取客户端、服务器端基础信息
			1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostN ... 
- MyCat的初步了解
			MyCat 1 开源数据库中间件 MyCat 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据 ... 
