Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/Coldfusion表单循环验证_Javascript_Jquery_Forms_Coldfusion - Fatal编程技术网

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个输入

以下是我的建议:

  • 不要重新发明轮子。看看jQuery.validate插件。另外,去掉
    ,只使用
  • 不要通过jQuery添加必需的属性,只需将其作为
    required=“required”
  • 不要使用
    evaluate()
    。而是使用
    value=“#session.checkout.info[“lastname”&Add]#”

  • 停止使用
    cfinput
    或任何其他ColdFusion客户端功能。它们只会导致问题。对于客户端验证,请查看jQuery验证插件-。该插件易于使用,功能强大且极为灵活。我们将其用于动态添加许多字段的表单。您真的将您的js包含在l中吗oop?糟糕的主意。我担心这些会是我的答案哈哈谢谢你的花絮@ScottStroz通过删除
    cfinputs
    它实际上帮助我更接近我的目标!@DanBracuk我真的不知道如何在循环之外完成它,因为JS也必须循环才能设置为每个动态值,不是吗?