我已经确认extjs 4.1中没有textfield的粘贴事件。但我不希望用户应该能够粘贴到这个文本域。还有哪些其他选项可供用户不允许在文本字段中粘贴任何值。请注意,textfield只允许使用数字值,不允许使用字符/特殊字符或字母。以下是我目前的代码片段。
{
xtype:"textfield",
fieldLabel: 'Debit Account',
name:'debitAccount',
id : 'debitacct',
enableKeyEvents:true,
maskRe: /[0-9]/,
allowBlank: false,
allowNegative: false,
maxLength: 9,
enforceMaxLength:true,
listeners : {
specialkey : function(field, e) {
filterBackspaceKey(e);
}
}
}
感谢任何帮助。
答案 0 :(得分:6)
在我看到@Sencha链接后,解决方案很简单。代码如下。
{
xtype:"textfield",
fieldLabel: 'Debit Account',
name:'debitAccount',
id : 'debitacct',
enableKeyEvents:true,
maskRe: /[0-9]/,
allowBlank: false,
allowNegative: false,
maxLength: 9,
enforceMaxLength:true,
listeners : {
specialkey : function(field, e) {
filterBackspaceKey(e);
},
paste: {
element: 'inputEl',
fn: function(event, inputEl) {
if(event.type == "paste"){
event.preventDefault();
return false;
}
}
}
}
}
参考Sencha的链接:http://www.sencha.com/forum/showthread.php?175253-Paste-event
答案 1 :(得分:1)
希望有所帮助。
答案 2 :(得分:0)
将听众改为下面后尝试
listeners : {
change : function(field, newValue,oldValue) {
var validation=/^\d+$/;
if(!validation.test(newValue) && newValue!='' ) {
field.setValue(oldValue);
}
}
}