Javascript/Coldfusion表单循环验证
我有一个表单,表单内部有一个循环。我试图为表单创建动态验证,但失败了,因为表单提交时,它只验证最后一个循环。我已经研究和尝试了许多不同的场景,当然,都失败了!任何帮助或指点都将不胜感激Javascript/Coldfusion表单循环验证,javascript,jquery,forms,coldfusion,Javascript,Jquery,Forms,Coldfusion,我有一个表单,表单内部有一个循环。我试图为表单创建动态验证,但失败了,因为表单提交时,它只验证最后一个循环。我已经研究和尝试了许多不同的场景,当然,都失败了!任何帮助或指点都将不胜感激 <cfform name="form" id="form" method="post"> <cfset Peoplecount = 1> <cfloop index="Add" from="1" to="#session.checkout.quantity.p
<cfform name="form" id="form" method="post">
<cfset Peoplecount = 1>
<cfloop index="Add" from="1" to="#session.checkout.quantity.pcount#" step="1">
<div class="clearfix">
<cfinput type="text" name="firstname_#Add#" id="firstname_#Add#" placeholder="First" validateat="onSubmit" validate="noblanks" message="Please enter owner #Peoplecount#'s first name." value="#evaluate("session.checkout.info.firstname_#Add#")#">
<cfinput type="text" name="middlename_#Add#" id="middlename_#Add#" placeholder="Middle" value="#evaluate("session.checkout.info.middlename_#Add#")#">
<cfinput type="text" name="lastname_#Add#" id="lastname_#Add#" placeholder="Last" validateat="onSubmit" validate="noblanks" message="Please enter owner #Peoplecount#'s last name." value="#evaluate("session.checkout.info.lastname_#Add#")#">
</div>
<script type="text/javascript">
function Validate<cfoutput>#Add#</cfoutput>() {
$('#firstname_<cfoutput>#Add#</cfoutput>').prop('required',true);
$('#middlename_<cfoutput>#Add#</cfoutput>').prop('required',false);
$('#lastname_<cfoutput>#Add#</cfoutput>').prop('required',true);
}
</script>
<cfinput type="submit" name="Submit" value="Submit" onClick="Validate<cfoutput>#Add#</cfoutput>();">
函数验证#添加#(){
$(“#firstname#Add#”).prop('required',true);
$(“#middlename#Add#”).prop('required',false);
$(“#lastname#Add#”).prop('required',true);
}
另外,我发现令人困惑的是,如果循环为1,则所有操作都正常,但如果循环的任何数字大于1,则仅验证最后一个循环,如下所示:function Validate() {
<cfinput type="submit" name="Submit" value="Submit" onClick="Validate();">
函数验证(){
循环的结尾是这样的:
<cfif Add NEQ session.checkout.quantity.pcount>
<div class="labelspace">
<label for="andor_<cfoutput>#Add#</cfoutput>"><strong>Please indicate if "or" or "and" is to be shown on title when issued.</strong></label>
<cfinclude template="../../../ddl/andor.cfm" >
</div><br>
<cfelse>
<cfinput type="submit" name="Submit" value="Submit" onClick="Validate();">
</cfif>
<cfset Peoplecount = PeopleCount + 1>
</cfloop>
请注明发布时标题上是否显示“或”或“和”。
我在这里假设,没有看到cfloop的结尾。但假设cfloop位于代码的最末尾。您将使用多个提交按钮,每个按钮仅“验证”每个提交按钮的3个输入
以下是我的建议:
,只使用
required=“required”
evaluate()
。而是使用value=“#session.checkout.info[“lastname”&Add]#”
停止使用
cfinput
或任何其他ColdFusion客户端功能。它们只会导致问题。对于客户端验证,请查看jQuery验证插件-。该插件易于使用,功能强大且极为灵活。我们将其用于动态添加许多字段的表单。您真的将您的js包含在l中吗oop?糟糕的主意。我担心这些会是我的答案哈哈谢谢你的花絮@ScottStroz通过删除cfinputs
它实际上帮助我更接近我的目标!@DanBracuk我真的不知道如何在循环之外完成它,因为JS也必须循环才能设置为每个动态值,不是吗?