【问题标题】:ColdFusion error - String index out of range: 0ColdFusion 错误 - 字符串索引超出范围:0
【发布时间】:2016-01-19 22:51:51
【问题描述】:

我在 Windows 7 上的 ColdFusion 9 应用程序中的以下代码给出了上述错误。名称为 available_balance 的文本框的默认值为 $0.00。仅当用户删除此值并单击提交按钮时,才会出现上述错误:

<cfif (isDefined('form.available_balance') AND (#LSIsCurrency(trim(form.available_balance))# neq ""))>
    <cfset available_balance = "#replace(replace(trim(form.available_balance),'$','','All'), ',', '')#">        
</cfif>

【问题讨论】:

  • 根据您的整体要求,您可以将表单字段设为必填。
  • 提示:当您看到像 IsSomething 这样的函数名称时,通常意味着该函数返回 true/false - 而不是字符串。如您所料,LSIsCurrency 如果输入被认为是有效的(特定于语言环境的)货币,则返回 true,否则返回 false。此外,与您的问题无关,但代码中的井号不是必需的。

标签: coldfusion coldfusion-9


【解决方案1】:

LSIsCurrency 不会将空字符串或仅包含空格的字符串作为 输入。返回 boolean 值。

所以,你可以试试这个:

<cfif structKeyExists(form, "available_balance")> 
  <cfset form.available_balance = trim(form.available_balance)> 
  <cfif len(form.available_balance) AND LSIsCurrency(form.available_balance)>
    <cfset form.available_balance = LSParseCurrency(form.available_balance)>
  </cfif>      
</cfif>

【讨论】:

  • 感谢您解释导致问题的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
  • 2015-01-19
相关资源
最近更新 更多