JavaScriptはどのようにBackspaceキーを禁止しますか?
1579 ワード
今日IEブラウザで発見しました.readonly=「readonly」属性を使ってテキストボックスを読み取り専用に設定した時、不思議な問題があります.カーソルが読み取り専用のテキストボックスに入ったら、Backspaceキーを押すと、前のページにジャンプします.効果はビューアの後退ボタンをクリックして前のページに戻るようになります.この問題を解決するために、テキストボックスが読み取り専用の場合は、Backspaceキーを無効にします.コードは以下の通りです
この文章が好きで、引き続き小编の更新された文章に注目してください.
// (Backspace) 、
function banBackSpace(e){
var ev = e || window.event;// event
var obj = ev.target || ev.srcElement;//
var t = obj.type || obj.getAttribute('type');//
//
var vReadOnly = obj.getAttribute('readonly');
// null
vReadOnly = (vReadOnly == "") ? false : vReadOnly;
// Backspace , 、 ,
// readonly true enabled false ,
var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea")
&& vReadOnly=="readonly")?true:false;
// Backspace , 、 ,
var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")
?true:false;
//
if(flag2){
return false;
}
if(flag1){
return false;
}
}
window.onload=function(){
// Firefox、Opera
document.onkeypress=banBackSpace;
// IE、Chrome
document.onkeydown=banBackSpace;
}
このような処理を加えると、「読み取り専用入力ボックスがIEの下でBackspaceキーを押して前のページに戻る」という問題を簡単に解決できます.この文章が好きで、引き続き小编の更新された文章に注目してください.