2015-04-20 22 views
0

我的表单包含输入字段,这些字段将在提交时针对最小值和最大值进行验证。输入字段将使用列表迭代显示在屏幕上。遍历bean列表并验证javascript中的数据

<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,也是最小/最大values.i需要验证表单并防止用户提交如果表单用户输入的值任何输入值都不在最小/最大值内。

所以我有点困惑如何在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> 
+0

你应该使用' e.preventDefault()'只有当表单无效时。 – marcel

+0

@Guruprasad Rao感谢您的答复。但在我的情况下,我需要将存储在bean中的最小值和最大值传递给jquery函数,以便验证它。但是,您的答案仅仅检查空白值 – jaggs

+0

实际上我已经没有经验或更好的说不知道这个bean列表,所以我只是给了你一个基本的想法,你如何验证...... :)无论如何** [这个链接](http://stackoverflow.com/questions/ 16358112/how-to-value-from-listbean-object-in-jquery-using-spring)**可能会有所帮助.. :) –