forms - 为什么 ColdFusion 认为值 "7+"是一个有效的整数值,我如何验证它不是?

标签 forms validation coldfusion textinput

我有一个供用户输入数量的表格。该表单具有客户端验证,以确保该值是一个整数并且在给定范围内。操作页面具有服务器端验证,以确保该值是一个大于零的整数。

但是,一种类型的值通过验证并导致我的 INSERT/UPDATE 查询抛出异常。该值是一个带加号的整数 - 即“7+”或“12+”。

当输入这样的值时,ColdFusion 生成的 JavaScript 验证会抛出一个 JavaScript 错误:

_CF_checkformAddToCart = function(_CF_this)
{
    //reset on submit
    _CF_error_exists = false;
    _CF_error_messages = new Array();
    _CF_error_fields = new Object();
    _CF_FirstErrorField = null;

    //form element itemQuantity 'INTEGER' validation checks
    if (!_CF_checkinteger(_CF_this['itemQuantity'].value, false))
    {
        _CF_onError(_CF_this, "itemQuantity", _CF_this['itemQuantity'].value, "Error on itemQuantity, please enter an integer value for quantity that is not greater than 500");
        _CF_error_exists = true;
    }

    //form element itemQuantity 'RANGE' validation checks
    if  (!_CF_checkrange(_CF_this['itemQuantity'].value, 0.0,500.0, false))
    {
        _CF_onError(_CF_this, "itemQuantity", _CF_this['itemQuantity'].value, "Error on itemQuantity, please enter an integer value for quantity that is not greater than 500");
        _CF_error_exists = true;
    }
}

一旦我取消错误弹出窗口,它就会转到操作页面,在那里我[尝试]验证值,如下所示:
<cfif IsValid("integer", form.itemQuantity) AND form.itemQuantity GT 0>
    <cfquery>
        INSERT ....

但是,如果尝试这个...
<cfset x = Int("7+") />

...ColdFusion 引发错误。

它是整数还是不是 ColdFusion ???

如何解决这个问题并正确验证我的表单输入?

最佳答案

isNumeric(form.itemQuantity)将为“7+”返回 false,因此要完全验证您的输入为 int,您可以执行此操作

<cfif isNumeric(form.itemQuantity) and IsValid("integer", form.itemQuantity) AND form.itemQuantity GT 0>

关于forms - 为什么 ColdFusion 认为值 "7+"是一个有效的整数值,我如何验证它不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7987669/

相关文章:

jquery - IE 中 jQuery 设置的 iframe `name` 属性的奇怪行为

javascript - 如何根据使用单一表单选择的单选按钮修复代码以转到不同的页面

javascript - 如何使带有 &lt;input&gt; 按钮的搜索栏在输入时打开域?

coldfusion - 如何在 coldfusion <cfscript> 中使用 <form> 标签

Coldfusion - 允许用户选择保存生成的 csv 文件的位置

javascript - jQuery - 对表单中的每个输入值求和

javascript - 有效日期作为无效日期 Javascript 的输出

java - 如何验证多个编辑文本?我使用 TextUtils 只能获取 1 条文本

javascript - 如何使用 JavaScript 识别数字是否为整数

mysql - ColdFusion 与 MySQL 数据库通信的问题