EXTJS在IE瀏覽器下,當texfield設定為唯讀時(readonly=true),所有按鍵如預期都無法輸入,唯獨[Backspace]按鈕,會讓你回到上一頁,比較好的解法就是在這個頁面鎖定[Backspace]按鈕。
if(Ext.isIE){//判斷是否為IE瀏覽器
document.onkeydown = function(event) {//抓取鍵盤的event
var ele = window.event.srcElement;
//e.keyCode === 8 確認按下的是baclspace
//ele.type=='text textfield才過濾
//ele.id=='textfield_id' 針對textfield id做過濾,否則所有欄位的backspace都被鎖住
if (e.keyCode === 8 && ele.type=='text' && ele.id=='textfield_id') {
return false;
}
};
}
我自已還遇到一個狀況是該欄位有可能是可以輸入的狀態(也就是readonly=true),但是以上面的寫法是會把backspace完全鎖住,但是似乎又抓不到textfield是否為readonly的屬性,目前解法是自己多加一個參數來記錄目前textfield是否為readonly,每次設定readonly時,需要額外再修改此參數,再加到上述程式中判斷。
var textReadOnly=false;
if(Ext.isIE){//判斷是否為IE瀏覽器
document.onkeydown = function(event) {//抓取鍵盤的event
var ele = window.event.srcElement;
//e.keyCode === 8 確認按下的是baclspace
//ele.type=='text textfield才過濾
//ele.id=='textfield_id' 針對textfield id做過濾,否則所有欄位的backspace都被鎖住
//textReadOnly判斷
if (e.keyCode === 8 && ele.type=='text' && ele.id=='textfield_id' &&textReadOnly) {
return false;
}
};
}
0 意見:
張貼留言