JavaScriptはBackspaceキーをブロックします.
5266 ワード
今日IEブラウザで発見しました.readonly=「readonly」属性を使ってテキストボックスを読み取り専用の「input type」=「text」readonly=「readonly」を設定すると、不思議な問題があります.カーソルが読み取り専用のテキストボックスに入ると、Backspaceキーを押すと、前のページにジャンプします.火狐とgoogleの下ではこのような問題はありません.この問題を解決するために、次のような処理方法を書きました.テキストボックスが読み取り専用の場合、Backspaceキーを無効にします.
コードは以下の通りです
コードは以下の通りです
1 // (Backspace) 、
2 function banBackSpace(e){
3 var ev = e || window.event;// event
4 var obj = ev.target || ev.srcElement;//
5 var t = obj.type || obj.getAttribute('type');//
6 //
7 var vReadOnly = obj.getAttribute('readonly');
8 // null
9 vReadOnly = (vReadOnly == "") ? false : vReadOnly;
10 // Backspace , 、 ,
11 // readonly true enabled false ,
12 var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea")
13 && vReadOnly=="readonly")?true:false;
14 // Backspace , 、 ,
15 var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")
16 ?true:false;
17
18 //
19 if(flag2){
20 return false;
21 }
22 if(flag1){
23 return false;
24 }
25 }
26
27 window.onload=function(){
28 // Firefox、Opera
29 document.onkeypress=banBackSpace;
30 // IE、Chrome
31 document.onkeydown=banBackSpace;
32 }
このような処理を加えると、「読み取り専用入力ボックスがIEの下でBackspaceキーを押して前のページに戻る問題」を解決できます.