首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何防止在Ext文本字段中输入小数和负数-- Extjs

在Ext.js中,可以通过使用合适的验证器和控制器来防止在Ext文本字段中输入小数和负数。

  1. 使用验证器: 可以通过Ext.form.field.Number类的配置项来限制文本字段只允许输入整数。例如:
代码语言:txt
复制
Ext.create('Ext.form.Panel', {
    title: 'My Form',
    items: [{
        xtype: 'textfield',
        fieldLabel: '整数字段',
        name: 'integerField',
        allowDecimals: false, // 禁止输入小数
        allowNegative: false, // 禁止输入负数
        validator: function(value) {
            if (Ext.isEmpty(value) || /^[1-9]\d*$/.test(value)) {
                return true;
            }
            return '请输入有效的整数';
        }
    }]
});

上述代码中,allowDecimals配置项设置为false,表示不允许输入小数;allowNegative配置项设置为false,表示不允许输入负数。validator函数用于自定义验证逻辑,通过正则表达式验证输入的值是否为有效的整数。

  1. 使用控制器: 可以通过监听文本字段的change事件,在事件处理函数中过滤非法的输入。例如:
代码语言:txt
复制
Ext.create('Ext.form.Panel', {
    title: 'My Form',
    items: [{
        xtype: 'textfield',
        fieldLabel: '整数字段',
        name: 'integerField',
        listeners: {
            change: function(field, newValue, oldValue) {
                if (!Ext.isEmpty(newValue)) {
                    var intValue = parseInt(newValue);
                    if (isNaN(intValue) || intValue.toString() !== newValue) {
                        field.setValue(oldValue); // 恢复为旧值
                    }
                }
            }
        }
    }]
});

上述代码中,change事件处理函数将输入的值转换为整数,如果转换结果不是数字或转换后的字符串与原始输入值不一致,则将字段值恢复为旧值,从而防止小数和负数的输入。

总结: 通过验证器和控制器的方式,可以有效地防止在Ext文本字段中输入小数和负数。验证器提供了灵活的验证逻辑和自定义错误提示,而控制器则提供了实时的输入过滤和校正机制。根据具体情况选择合适的方式来实现需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券