【问题标题】:How to allow only 2 decimal on a numberfield如何在数字字段上只允许 2 个小数
【发布时间】:2018-02-28 13:31:07
【问题描述】:

我想限制用户可以在输入中写入的小数位数。 例如,当我写 850,9560 时,该字段没有显示错误,这是我的字段:

{
    xtype: 'numberfield',
    fieldLabel: 'My field label',
    name: 'montant_sm',
    id: 'montant_sm_',
    decimalPrecision: 2,
    maxValue: 999.99,
    decimalSeparator: ','
}

My field without error for 880,9794 value

My field with max number exceeded displays correct error

你知道 sencha 在小数点大于 2 时如何设置错误 1 ​​吗? 最好的问候。

【问题讨论】:

    标签: javascript extjs


    【解决方案1】:

    如果您将 decimalPrecision 设置为 2,则该值会在您离开该字段时自动四舍五入。

    如果不是这样,您必须编写一个自定义验证器,您可以在其中检查值和return true,如果它被接受,或者一些错误消息,如果它不是。

    例如

    validator: function(v) {
        var commaPos = v.indexOf(',')+1,
            strLen = v.length;
        console.log(commaPos);
        console.log(strLen);
        if(commaPos > 0 && commaPos < strLen-2) return "Maximum allowed precision: two digits!";
        return true;
    }
    

    https://fiddle.sencha.com/#view/editor&fiddle/2drt

    【讨论】:

    • 谢谢您,我今天会尝试您的解决方案并给您反馈。
    • 像魅力一样工作!谢谢 ! :) 我添加了一个参数来设置字段中允许的小数位数
    【解决方案2】:

    用php:

    if ($amount!=round($amount,2)) $error = true;
    

    【讨论】:

    • 嘿!欢迎来到堆栈溢出!这是一个已被接受且有效答案的老问题,请尝试回答新的或未回答的问题并继续努力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    相关资源
    最近更新 更多