javascript 如何校验 iterator 迭代出的list对象数组

问题描述

<s:iterator value="listkdd" status="status"><s:checkbox name="listkdd[%{#status.index}].delete_check" value="%{listkdd[#status.index].delete_check}"></s:checkbox><s:textarea name="listkdd[%{#status.index}].policy_msg" value="%{listkdd[#status.index].policy_msg}" ></s:textarea><s:hidden name="listkdd[%{#status.index}].hyoji_cd" value="%{listkdd[#status.index].hyoji_cd}" ></s:hidden></s:iterator> 上面是jsp里的代码 用struts2 的 s:iterator 将封装了bean对象的 listkdd 迭代到到页面上来了。在页面边机构,需要多行数据的的表单验证。请问这个该怎么捕捉到每一行啊 我看jsp页面返回的都是<input type="checkbox" name="listkdd[0].delete_check" value="true" id="TestCumit_listkdd_0__delete_check"/><input type="checkbox" name="listkdd[1].delete_check" value="true" id="TestCumit_listkdd_1__delete_check"/><input type="checkbox" name="listkdd[2].delete_check" value="true" id="TestCumit_listkdd_2__delete_check"/>这样的表单,该怎么逐句校验呢 问题补充:liveHappy 写道

解决方案

好,可能还有别的checkbox,但不是在循环中的。那么只多循环中的去做判断。可能你不知道循环中的list是多少条,也许就一个也许很多,那循环中得有个条件去限制循环的次数。以页面中的input标签的个数为次数,不要想这样是不是会去做很多处理,这个不用想,它返回的就是一个总数。checkbox的id就以你写的第一个数字的。for(var i =0 ; i< document.getElementsByTagName("input").length;i++){ //先判断是否为object对象,要不会报找不到属性. if(document.getElementById("check_delete"+i) != null){ //判断是否被选择if(document.getElementById("check_delete"+i).checked == true){ //自己写上要处理的事情了,或者赋值或者弹出alert(); } }}
解决方案二:
给你个提示吧。如果你需要对checkbox是否没选中做验证的话,可以这么做。你在页面上会有很多个checkbox吧,那么需要去判断checkbox被选还是没被选,用javascript去获得页面所有标签,如果标签类型等于checkbox的话,获得checkbox对象,在判断此checkbox的属性disabled是为true还是为false,如果为false就是没有被选中。在有个方法,给checkbox一个有规律的id。<s:checkbox id="#status.index" name="listkdd[%{#status.index}].delete_check" value="%{listkdd[#status.index].delete_check}"></s:checkbox>然后javascript做一个for去找对应id的对象,在判断disabled属性为true或false。那么下面的textarea也可以用这种方法去做。很直观。

时间: 2024-08-03 12:30:21

javascript 如何校验 iterator 迭代出的list对象数组的相关文章

如何使用struts2的标签迭代出HashMap中的List的记录?

问题描述 我Action中有一个HashMap,里面存放的是以ID为key,List为value的数据,请问怎样才能使用struts2的标签迭代出里面的数据?我目前是这样写的:<s:iterator value="answerHashMap"> <s:iterator value="<s:property value="subjectId"/>"> <s:property value="answ

深入解读JavaScript中的Iterator和for-of循环_基础知识

如何遍历一个数组的元素?在 20 年前,当 JavaScript 出现时,你也许会这样做: for (var index = 0; index < myArray.length; index++) { console.log(myArray[index]); } for (var index = 0; index < myArray.length; index++) { console.log(myArray[index]); } 自从 ES5 开始,你可以使用内置的 forEach 方法:

Java集合Iterator迭代的实现方法_java

我们常常使用 JDK 提供的迭代接口进行 Java 集合的迭代. Iterator iterator = list.iterator(); while(iterator.hasNext()){ String string = iterator.next(); //do something } 迭代其实我们可以简单地理解为遍历,是一个标准化遍历各类容器里面的所有对象的方法类,它是一个很典型的设计模式.Iterator 模式是用于遍历集合类的标准访问方法.它可以把访问逻辑从不同类型的集合类中抽象出来

javascript实现校验文件上传控件实例

  实例讲述了javascript实现校验文件上传控件.分享给大家供大家参考.具体如下: 该javascript校验文件上传控件代码可检测上传文件的类型是否是图片 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <script language="javascript"> function Checkfiles() { var fup = document.getElementById('logo1'); var file

javascript实现给定半径求出圆的面积

  这篇文章主要介绍了javascript实现给定半径求出圆的面积的相关资料,需要的朋友可以参考下 代码相当简单,这里就不多废话了,小伙伴们自己参考下吧. ? 1 2 3 4 5 6 <script> var circularityArea = new Function("r","return r*r*Math.PI"); //创建一个函数对象 var rCircle = 2;//给定圆的半径 var area = circularityArea(rCi

java中如何用&amp;amp;lt;c:foreach&amp;amp;gt;迭代出list集合中的map集合中的value值

问题描述 action中的代码片段: int i = 0; Map map = new HashMap(); List list = new ArrayList(); map.put(i,ci); //ci是个Book对象 i++; list.add(map); session.put("list",list); //实现了SessionAware接口那么我在JSP页面中要如何迭代出ci中的各个属性啊?或者我action哪里写错了?<c:forEach items="$

使用JavaScript正则表达式校验非零正整数:(^[1-9]d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^+?[1-9][0-9]*$)

话不多说,请看实例代码: <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title

JavaScript中校验银行卡号的实现代码_javascript技巧

1.先引入jquery.js 2.接着引入luhmCheck.js //银行卡号Luhm校验 3.看下面的案例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&

Javascript 正则表达式校验数字的简单实例_javascript技巧

实例如下: $("input[datatype=number]").blur(function () { var str = $(this).val(); if (!isDecimal(str)) { alert("请输入数字"); } }); function isDecimal(str) { if (isInteger(str)) return true; var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/; if (re.test(str