var pwd = new Ext.form.TextField({
fieldLabel:'登录密码',
id:'pwdid',
allowBlank:false,
blankText:'该项不能为空',
name:'password',
inputType:'password',
width:200
});
火狐浏览器可以用回格键(Backspace)删除文本输入框里的内容。ie浏览器不能用退格键删除文本输入框里的内容,但是可以用删除键(Delete)删除里边的内容。求大家指点 怎么在ie浏览器能使用Backspace回格键!
文本输入框pwd 作为FormPanel的items属性的一个元素。
=。= 都说了肯定是哪里有写了屏蔽Backspace的事件的js代码了。。不然IE里应该是可以正常执行的,只不过可能会导致按退格键返回上一个页面
[code="java"] var searchKey = new Ext.form.TextField({ //text
id: 'searchkey',
fieldLabel: 'text',
name: 'text',
defaultType: 'textfield',
grow: false,
blankText: "这个字段最好不要为空",
enableKeyEvents: true,
listeners:{
'keypress': function(e){
if (e.getKey() == e.ENTER && this.getValue().length > 0) {
alert("OK");
}
}
},
});
[/code]
监听键盘 要先把设置enableKeyEvents: true,类似上面这样
我目前项目代码 加了[code="java"]Ext.util.checkSpecialKey = function(e){
e=e||window.event;
var k = e.which||e.keyCode;
var tagName;
var read_only;
if(e.srcElement){
tagName = e.srcElement.tagName.toUpperCase();
read_only = e.srcElement.readOnly;
}else{
tagName = e.target.tagName.toUpperCase();
read_only = e.target.readOnly;
}
//屏蔽 BcakSpace 后退键 (INPUT,TEXTAREA,TEXT除外)
var shieldBcakSpace=(k == 8/* && isShieldBcakSpace*/);
var isInput=('INPUT'==tagName||'TEXTAREA'==tagName||'TEXT'==tagName);
var shieldF5=false;//((k == 116 || (e.ctrlKey && k == 82 ))/* && isShieldF5*/);
if(shieldBcakSpace || shieldF5){
if(!read_only && isInput && !shieldF5){
e.cancelBubble = false;
e.returnValue = true;
return true;
}else{
if(e.preventDefault){
e.preventDefault();
}else{
e.keyCode = 0;
e.returnValue=false;
}
}
}
};
if(document.addEventListener){
document.addEventListener("keydown",Ext.util.checkSpecialKey,false);
}else{
document.attachEvent("onkeydown",Ext.util.checkSpecialKey);
}[/code]
统一控制了 解决了不少问题