我无法确定如何验证用户提交特定表单的最佳方法。根据用户的不同,他/她将能够编辑具有州或整个国家的区域以及所有区域。所以我需要验证他们为所有状态输入的内容等于他们的区域分配(对于每一列)。如果用户具有国家访问权限,我需要确保所有地区都达到全国总数。
我在HTML和Coldfusion中编码,但如果使用javascript进行验证,则无关紧要。结果将是动态的,因此我不想对任何验证进行硬编码,因为查询是动态的。在某些情况下,3-13中的所有行将等于第1行,3-12等于第2行。在某些情况下,第2-7行应该等于第1行。每种情况可能不同。
这是我的表单显示代码。任何帮助将不胜感激。
<cfloop index="i" from="1" to="#getdata.recordcount#">
<tr id="editrow#i#" style="background-color:##f0f0f0">
<td>#getdata.location[i]#</td>
<td><input type="text" class="form-control" id="initial#i#" name="initial#i#" value="#numberFormat(getdata.initial[i],'9,999')#"></td>
<td><input type="text" class="form-control" id="recon#i#" name="recon#i#" value="#numberFormat(getdata.recon[i],'9,999')#"></td>
<td><input type="text" class="form-control" id="cdr#i#" name="cdr#i#" value="#numberFormat(getdata.cdr[i],'9,999')#"></td>
<td><input type="text" class="form-control" id="other#i#" name="other#i#" value="#numberFormat(getdata.cdr[i],'9,999')#"></td>
</tr>
</cfloop>
答案 0 :(得分:0)
在表单中包含名为recordCount的隐藏字段。然后,您可以在操作页面上验证表单,如下所示:
<cfset recordCount = form.recordCount>
<cfset validationValInitial = 0>
<cfset validationValRecon = 0>
<cfset validationValCDR = 0>
<cfset validationValOther = 0>
<cfloop list="#form.fieldnames#" index="fieldname">
<!--- Use first 3 letters to identify each category of fields --->
<cfswitch expression="#left(fieldname,3)#">
<cfcase value="ini"><!--- initial1, initial2, ... --->
<cfloop from="1" to="#recordCount#" index="rowNo">
<cfif rowNo GTE 3 and rowNo LTE 13>
<cfset validationValInitial = validationValInitial + form['initial' & rowNo]>
</cfif>
</cfloop>
</cfcase>
<cfcase value="rec"><!--- recon1, recon2, ... --->
</cfcase>
<cfcase value="cdr"><!--- cdr1, cdr2, ... --->
</cfcase>
<cfcase value="oth"><!---other1, other2, ... --->
</cfcase>
</cfswitch>
</cfloop>
/*
Here, I have assumed that the validation rule for the fields initial1, initial2, ... is that the sum of the values in rows 3 to 13 equals the value in row 1. Use this as an example, and work out the rest.
*/
<cfif validationValInitial EQ form.initial1>
<!--- valid --->
<cfelse>
</cfif>