javascript - Sencha Extjs 6 如何禁用数字字段中的小数输入

标签 javascript extjs sencha-touch

我需要在 sencha extjs 6 中使用 numberfield,但默认情况下 numberfield 允许十进制输入。我的应用程序不需要十进制输入我尝试过 allowDecimals: false, 它可能适用于文本字段。有什么配置或方法可以禁用输入吗? 注意:在 PC 中,我可以编写方法来防止它,但我的应用程序正在移动设备上运行,因此,我不知道它。谢谢。

最佳答案

我强烈建议您在这种情况下使用 numberfield。当然,这将接受桌面浏览器中的所有字符。但您会发现它仅通过显示数字键盘来接受移动设备中的数字。

现代版本的 Sencha Touch 框架不提供十进制精度参数...但有一种方法可以克服这个问题。只需将这些行放在设置数字字段的值之前即可。

Ext.form.Number.override ({

    applyValue : function(value){
        var minValue = this.getMinValue(),
            maxValue = this.getMaxValue();

        if (Ext.isNumber(minValue) && Ext.isNumber(value)) {
            value = Math.max(value, minValue);
        }

        if (Ext.isNumber(maxValue) && Ext.isNumber(value)) {
            value = Math.min(value, maxValue);
        }

        value = parseFloat(value).toFixed(0); // where 0 is your decimal precision value
        return (isNaN(value)) ? '' : value;
    }
});

在此示例中您可以看到实现:

Ext.application({
    name: 'Fiddle',

    launch: function () {
        Ext.form.Number.override({

            applyValue: function (value) {
                var minValue = this.getMinValue(),
                    maxValue = this.getMaxValue();

                if (Ext.isNumber(minValue) && Ext.isNumber(value)) {
                    value = Math.max(value, minValue);
                }

                if (Ext.isNumber(maxValue) && Ext.isNumber(value)) {
                    value = Math.min(value, maxValue);
                }

                value = parseFloat(value).toFixed(0); // where 0 is your decimal precision value
                return (isNaN(value)) ? '' : value;
            }
        });
        Ext.create({
            xtype: 'window',
            width: 200,
            height: 200,
            items: [{
                xtype: 'numberfield'
            }]
        }).show();
    }
});

Here is a working fiddle

关于javascript - Sencha Extjs 6 如何禁用数字字段中的小数输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41337825/

相关文章:

extjs - 如何在 Ext JS 4.2.1 中编译 sass

php - 加载和重新加载时的 ExtJS 网格回调

cordova - 如何使用navigator.app.exitApp()退出手机空白应用程序?

sencha-touch - sencha 列表分页插件

javascript - 一旦放置在高 Angular 或低 Angular ,相机就会表现得很奇怪

javascript - 在 jQuery 获取的 HTML 上调用 typeface.js?

javascript - angularjs 多重解析与 loadsequence 和 auth 权限

javascript - Javascript 中的这两个语句有什么区别?

Extjs : Hidden content being initialized on start up

sencha-touch - Sencha 隐藏显示按钮