将 LiveCycle 十进制字段与模式匹配
Match a LiveCycle decimal field to a pattern
我们在 LiveCycle Designer 设计的 PDF 表单中有一个小数字段,旨在捕获纬度值。我想确保用户输入 正好 三位小数。而且我不希望 PDF 为它们创建十进制数字。用户必须输入它们。
我尝试在字段的退出事件中使用如下所示的 this.rawValue.match(myRegEx) 方法捕获任何不正确输入的值,但是 JavaScript 引发了以下错误:
TypeError: this.rawValue.match is not a function
17:XFA:form1[0]:Page7[0]:Facility_Coord_Latitude[0]:exit
这是我使用的代码。这很令人困惑,因为我在不同的领域使用了这种确切的方法。尽管另一个字段是文本字段而这个字段是小数字段。也许“匹配”方法不适用于小数字段?有什么方法可以将十进制值转换为可以使用“匹配”方法的字符串?或者关于如何执行此操作的任何其他想法?
if (this.rawValue != null){ // only if the field has a value...
if (
!this.rawValue.match(myRegex1) &&
!this.rawValue.match(myRegex2)){ // it doesnt match any of the patterns
xfa.host.messageBox('Please enter your value to exactly three decimal places.');
xfa.host.setFocus(this.name);
}
}
在@CertainPerformance 的指点下,我发现 decimal 字段确实不是字符串。我尝试在验证代码中按如下方式转换为字符串:
字符串(this.rawValue).匹配(myRegex2)
部分有效,但如果用户输入“000”作为小数点后三位,则失败,我认为是因为小数字段会在传递要检查的值之前截断那些尾随零。所以,我认为答案是没有办法,除非我将字段从十进制转换为文本。
我们在 LiveCycle Designer 设计的 PDF 表单中有一个小数字段,旨在捕获纬度值。我想确保用户输入 正好 三位小数。而且我不希望 PDF 为它们创建十进制数字。用户必须输入它们。
我尝试在字段的退出事件中使用如下所示的 this.rawValue.match(myRegEx) 方法捕获任何不正确输入的值,但是 JavaScript 引发了以下错误:
TypeError: this.rawValue.match is not a function
17:XFA:form1[0]:Page7[0]:Facility_Coord_Latitude[0]:exit
这是我使用的代码。这很令人困惑,因为我在不同的领域使用了这种确切的方法。尽管另一个字段是文本字段而这个字段是小数字段。也许“匹配”方法不适用于小数字段?有什么方法可以将十进制值转换为可以使用“匹配”方法的字符串?或者关于如何执行此操作的任何其他想法?
if (this.rawValue != null){ // only if the field has a value...
if (
!this.rawValue.match(myRegex1) &&
!this.rawValue.match(myRegex2)){ // it doesnt match any of the patterns
xfa.host.messageBox('Please enter your value to exactly three decimal places.');
xfa.host.setFocus(this.name);
}
}
在@CertainPerformance 的指点下,我发现 decimal 字段确实不是字符串。我尝试在验证代码中按如下方式转换为字符串:
字符串(this.rawValue).匹配(myRegex2)
部分有效,但如果用户输入“000”作为小数点后三位,则失败,我认为是因为小数字段会在传递要检查的值之前截断那些尾随零。所以,我认为答案是没有办法,除非我将字段从十进制转换为文本。