ColdFusion CFIF

时间:2014-09-27 04:34:27

标签: validation coldfusion

我是ColdFusion的新手。我正在尝试进行一些表单字段验证。但是,如果form.nameform.address字段为空,我的CFIF似乎无法正常工作。

这是我的代码:

         <cfif IsDefined("form.name")>
           <cfif IsDefined("form.address")>
              Your shipping address is:<br>
              <cfoutput>
                 #form.name#<br>
                 #form.address#<br>
                 #form.state#<br>
                 #form.shipping#<br>
                 #form.brochure#<br>
              </cfoutput>

           <cfelse>
              You did not enter an address.
           </cfif>   
         <cfelse>
              You did not enter a name.
         </cfif>  

4 个答案:

答案 0 :(得分:15)

您只是检查字段是否存在。文本输入字段将始终存在于提交的表单变量中,即使它们为空。您还需要检查字段值是否为空字符串。此外,您应该考虑使用StructKeyExists()而不是IsDefined(),因为它更精确,在某些情况下表现更好。所以你可以试试:

<cfif StructKeyExists(form, "name") AND Len(Trim(form.name))>

这将检查“名称”表单字段是否到达FORM范围,并且该变量中的值是否至少是空格以外的一个字符。

答案 1 :(得分:0)

您也可以考虑使用Javascript或jQuery检查空白字段或缺少输入,在用户离开页面之前通知用户是有礼貌的。

答案 2 :(得分:0)

与Carl的答案类似的替代方案是

<cfif StructKeyExists(form, "name") AND Trim(form.name) NEQ ''>

答案 3 :(得分:0)

我认为,如果您提交的表单必须存在,那么检查是否存在这些字段是不必要的。

 <cfif (form.name IS "")  OR (form.address IS "")>
   We need your name and address to ship your item(s).
 <cfelse>
   Your shipping address is:<br>
          <cfoutput>
             #form.name#<br>
             #form.address#<br>
             #form.state#<br>
             #form.shipping#<br>
             #form.brochure#<br>
          </cfoutput>
  </cfif>

小问题,但我从未使用过表格。变量的一部分,除了数据库写入。