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 意見:
張貼留言