Forms Len函数是否只评估数值结果?
如果表单提交时带有空白字段,为什么下面的代码不输出“Error”?Len是否只计算数值Forms Len函数是否只评估数值结果?,forms,coldfusion,trim,Forms,Coldfusion,Trim,如果表单提交时带有空白字段,为什么下面的代码不输出“Error”?Len是否只计算数值 <cfif NOT Len(Trim("Form.myField"))> <cfoutput>Error</cfoutput> </cfif> 错误 以下内容也未按预期进行评估: <cfif Len(Trim("Form.myField")) IS 0> <cfoutput>Error</cfoutput> <
<cfif NOT Len(Trim("Form.myField"))>
<cfoutput>Error</cfoutput>
</cfif>
错误
以下内容也未按预期进行评估:
<cfif Len(Trim("Form.myField")) IS 0>
<cfoutput>Error</cfoutput>
</cfif>
错误
HTML:
<input type="text" name="myField" value="">
您确定要在trim函数中以引号形式传递参数吗?它可能会从字面上修剪字符串“Form.myField”,因为它正在计算长度不是0的文本字符串“Form.myField”
试试看:
Duhhh。。。谢谢真不敢相信。我觉得我对细节的关注非常好。犯了一个多么愚蠢的错误!isDefined()稍有不同,在使用其他函数时需要引号,这让我很困惑。我终于习惯了(并且几乎不再使用isDefined()。你不会相信的,艾尔:就在我回到我的代码(我使用的是isDefined)并删除其中的引号之后,我的代码又停止工作了。我回到这里再次询问,看到了你的补充意见。现在情况很好。但是你怎么能停止使用isDefined呢?在我的例子中,我使用查看是否有未定义的内容,然后它的长度是否为0以输出错误;和cfelse来处理查询。您的替代方案是什么?正如Jason所建议的,我已经能够用structKeyExists()替换几乎所有的isDefined(“”)。我现在只在绝对必要的情况下使用isDefined(),因为它更精确。因为它更集中,所以速度可能更快,这取决于您的JVM。其他一些人的想法: