在Ext.js中,可以通过使用合适的验证器和控制器来防止在Ext文本字段中输入小数和负数。
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函数用于自定义验证逻辑,通过正则表达式验证输入的值是否为有效的整数。
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文本字段中输入小数和负数。验证器提供了灵活的验证逻辑和自定义错误提示,而控制器则提供了实时的输入过滤和校正机制。根据具体情况选择合适的方式来实现需求。
领取专属 10元无门槛券
手把手带您无忧上云