遍历 bean 列表并验证 javascript 中的数据

Posted

技术标签:

【中文标题】遍历 bean 列表并验证 javascript 中的数据【英文标题】:Iterating through a bean list and validate the data in javascript 【发布时间】:2015-06-26 18:46:25 【问题描述】:

我的表单包含输入字段,在提交时将根据最小值和最大值进行验证。输入字段将使用列表迭代显示在屏幕上。

<c:forEach var="Item" items="$listBean.nameList" varStatus="status">
    <input type="number"name="nameList<c:outvalue='[$status.index]'/>.initialWeight" onchange="checkOnChange(this,'<c:out value='$Item.personId'/>','<c:out value='$Item.minWeight'/>','<c:out value='$Item.maxWeight'/>','<c:out value='[$status.index]'/>')">
        <br><br>
    <input type="number" name="nameList<c:out value='[$status.index]'/>.finalWeight" onchange="checkOnChange(this,'<c:out value='$Item.personId'/>','<c:out value='$Item.minWeight'/>','<c:out value='$Item.maxWeight'/>','<c:out value='[$status.index]'/>')">
        <br><br>
    <input type="text" class="formtext" name="nameList<c:out value='[$status.index]'/>.Reason" id ="reason<c:out value='[$status.index]'/>" value="" maxlength="255" >
        <br><br>
        <input type="submit" value="submit" id="submit" />

 </c:forEach>

因此,在提交表单时,我已将所有用户输入的值存储在 bean 中以及最小/最大值。我需要验证表单并阻止用户提交表单(如果输入任何内容)值不在最小值/最大值范围内。

所以我对如何在 Java 脚本中执行此操作有点困惑?

感谢您的建议和时间..

JSFIDDLE

【问题讨论】:

【参考方案1】:

我会说给id

<form id="frmDetails">
    <c:forEach var="Item" items="$listBean.nameList" varStatus="status">
        <input type="number"name="nameList<c:outvalue='[$status.index]'/>.initialWeight" onchange="checkOnChange(this,'<c:out value='$Item.personId'/>','<c:out value='$Item.minWeight'/>','<c:out value='$Item.maxWeight'/>','<c:out value='[$status.index]'/>')">
            <br><br>
        <input type="number" name="nameList<c:out value='[$status.index]'/>.finalWeight" onchange="checkOnChange(this,'<c:out value='$Item.personId'/>','<c:out value='$Item.minWeight'/>','<c:out value='$Item.maxWeight'/>','<c:out value='[$status.index]'/>')">
            <br><br>
        <input type="text" class="formtext" name="nameList<c:out value='[$status.index]'/>.Reason" id ="reason<c:out value='[$status.index]'/>" value="" maxlength="255" >
            <br><br>
            <input type="submit" value="submit" id="submit" />

     </c:forEach>
</form>

下面将介绍表单提交功能

<script type="text/javascript">

$("#frmDetails").on("submit",function(e)
var valid=true;
e.preventDefault();
var inputs=$(this).children('input');
$.each('input',function(index,value)
   if($(this).val()=="")//blank validation
   
          valid=false;
   
);
if(valid)

//post the form


$("#frmDetails").unbind("submit"); //To prevent the form from getting submitted 
);

</script>

【讨论】:

只有在表单无效时才应该使用e.preventDefault() @Guruprasad Rao 感谢您的回复。但在我的情况下,我需要将存储在 bean 中的最小值和最大值传递给 jquery 函数,以便对其进行验证。但您的答案只是检查空白值 其实我没有经验,或者说不知道这个 bean 列表,所以我只是给你一个如何验证的基本概念...... :) 无论如何 @987654321 @ 可能会有所帮助.. :)

以上是关于遍历 bean 列表并验证 javascript 中的数据的主要内容,如果未能解决你的问题,请参考以下文章

Javascript:如何遍历模型中的对象列表

Javascript - 遍历元素的递归函数

如何遍历 JavaScript 中的静态值(常量)列表? [复制]

C ++:如何遍历类类型列表以进行类型标识验证和向下转换?

遍历 SQL Server 中的服务器列表

使用 ajax/Javascript 动态验证用户选择