Validation 冷聚变

Validation 冷聚变,validation,coldfusion,Validation,Coldfusion,我不熟悉ColdFusion。我正在尝试做一些表单字段验证。但是,如果form.name和form.address字段为空,我的CFIF似乎不起作用 这是我的密码: <cfif IsDefined("form.name")> <cfif IsDefined("form.address")> Your shipping address is:<br> <cfou

我不熟悉ColdFusion。我正在尝试做一些表单字段验证。但是,如果
form.name
form.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>  

您的送货地址是:
#表单名称#
#表格地址#
#形式.状态#
#表格.发货#
#表格.小册子#
您没有输入地址。 您没有输入名称。
您仅检查字段是否存在。文本输入字段将始终存在于提交的表单变量中,即使它们为空。您还需要检查字段值是否不是空字符串。此外,您应该考虑使用StuttKeIsgsIsHes()而不是ISDealDeD(),因为它更精确,并且在某些情况下性能更好。所以你可以试试:


这将检查“name”表单字段是否到达表单作用域,以及该变量中的值是否至少为一个字符(空格除外)

> P>您还可以考虑使用JavaScript或jQuery检查空白字段或缺失输入,在用户离开页面之前通知用户被认为是礼貌的。

< P>与卡尔的回答类似的备选方案是


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

 <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>

我们需要您的姓名和地址来运送您的物品。
您的送货地址是:
#表单名称#
#表格地址#
#形式.状态#
#表格.发货#
#表格.小册子#

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

True。然而,问题是关于服务器端验证(而不是客户端)。因此,上述内容实际上是一个评论,而不是一个答案。(我知道你不能,仅供参考)。正如Carl所写,只要你100%确定你在结构中寻找变量,就可以使用StructKeyExists而不是IsDefined(幸运的是变量作用域是结构)。第一个函数只在提到的作用域中查找特定的键,而IsDefined将在所有作用域中查找它。这非常慢,我的朋友,当您要比较字符串时,我建议您在有两个字符串要比较时使用LEN()或CompareNoCase()。CompareNoCase使用HEGEX进行比较,速度非常快!我最好的