Javascript Extjs 4.1-禁用文本字段的粘贴事件
我已经验证了extjs 4.1中没有textfield的粘贴事件。但我不希望用户能够粘贴到这个文本字段中。还有哪些其他选项不允许用户在文本字段中粘贴任何值。请注意,文本字段只允许数字值,不允许字符/特殊字符或字母。下面是我现在拥有的代码片段Javascript Extjs 4.1-禁用文本字段的粘贴事件,javascript,extjs,extjs4.1,textfield,Javascript,Extjs,Extjs4.1,Textfield,我已经验证了extjs 4.1中没有textfield的粘贴事件。但我不希望用户能够粘贴到这个文本字段中。还有哪些其他选项不允许用户在文本字段中粘贴任何值。请注意,文本字段只允许数字值,不允许字符/特殊字符或字母。下面是我现在拥有的代码片段 { xtype:"textfield", fieldLabel: 'Debit Account',
{
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);
}
}
}
感谢您的帮助。- 在任意单击并按下键时,执行以下操作:
- 检查旧值是否等于新值(更改事件)
- 将新值保存为旧值
- 如果内容已更改,则可以区分值,如果更改的部分不止一个字符,则内容已粘贴->还原为旧值
- 在任意单击并按下键时,执行以下操作:
- 检查旧值是否等于新值(更改事件)
- 将新值保存为旧值
- 如果内容已更改,则可以区分值,如果更改的部分不止一个字符,则内容已粘贴->还原为旧值
希望这能有所帮助。在我看到@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的链接:在我看到@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的链接:将您的侦听器更改为以下内容后重试
listeners : {
change : function(field, newValue,oldValue) {
var validation=/^\d+$/;
if(!validation.test(newValue) && newValue!='' ) {
field.setValue(oldValue);
}
}
}
尝试将您的侦听器更改为以下
listeners : {
change : function(field, newValue,oldValue) {
var validation=/^\d+$/;
if(!validation.test(newValue) && newValue!='' ) {
field.setValue(oldValue);
}
}
}
谢谢@Lex Podgorny的回复。在谷歌搜索了一点之后,我确实发现了一个粘贴事件,ref@SKS使用粘贴事件的答案不应该是正确的吗?@carcel,没错。粘贴事件是最好的选择。感谢@Lex Podgorny的回复。在谷歌搜索了一点之后,我确实发现了一个粘贴事件,ref@SKS使用粘贴事件的答案不应该是正确的吗?@carcel,没错。粘贴事件是可用的最佳选项。我正在寻找粘贴事件而不是更改。无论如何,谢谢你的密码。请检查我的代码作为解决方案。我正在寻找粘贴事件,而不是更改。无论如何,谢谢你的密码。请检查我的代码作为解决方案。@dbrin我的错,谢谢!我刚刚接受了。@dbrin我的错,谢谢!我刚刚接受了。