gpt4 book ai didi

validation - 如何以 ColdFusion 形式验证整数和范围?

转载 作者:行者123 更新时间:2023-12-01 03:01:43 25 4
gpt4 key购买 nike

在 CF8 表单中,我使用了如下标签:

<cfinput 
type = "Text"
name = "Num"
value = "0"
validate = "range,integer"
range = "0,1000"
validateAt="onBlur,onSubmit"
required = "yes"
message = "Invalid Value"
>

当字段失去焦点 (onBlur) 时,输入仅针对验证参数中的第一个条件进行验证(当我交换订单时它会更改)。

这是自动生成的 html/JS 代码:
<input 
name="Num"
id="Num"
type="text"
value="0"
onblur="if( !_CF_hasValue(this, 'TEXT', false)
&&
!_CF_checkrange(this.value,0.0,1000.0, true)
||
!_CF_checkinteger(this.value, true) )
{ _CF_onErrorAlert(new Array('Invalid Value')); }"
/>

OnSubmit 由单独的自动生成的 JS 处理并正常工作。

难道我做错了什么? CF8 不支持同时验证这两个条件吗?

最佳答案

查看此创建的 JavaScript,逻辑中存在错误。

目前,它是:

if (!has_value && !in_range || !is_integer) show_error()

但我认为它真的应该是:
if (!has_value || !in_range || !is_integer) show_error()

由于 JavaScript 短路逻辑表达式和 &&优先于 || ,如果其他两个返回 true,则原始表达式中的第三个检查永远不会执行.

从它的外观来看,我会试探性地说这是一个错误。您是否缺少任何 CF 补丁?也许这已经解决了?

关于validation - 如何以 ColdFusion 形式验证整数和范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/347111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com