- ベストアンサー
一部のテキストだけのKEYCODEを有効にしたい
- 初心者が四苦八苦している状況で、バックスペースキーを無効にしているが、一部のテキストのKEYCODEを有効にする方法が知りたい。
- フォームには有効にしたいテキストが存在し、全体的にバックスペースを無効にしているが、一部だけ解除したい。
- 解決策を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
あ、テキストボックス全部で指定したければ以下のほうがいいということに気がつきました・・・。(ID指定不要です) --------------------------------------- <html> <head> <title></title> <script> <!-- window.document.onkeydown = function (event){ event = event || window.event; var elem = event.target || event.srcElement; if(elem.type == "text") return; if (event.keyCode == 8){ event.keyCode = null; return false; } } // --> </script> </head> <body> <input type="text"/> </body> </html> ---------------------------------------
その他の回答 (2)
- susie-t
- ベストアンサー率86% (37/43)
> ちなみに・・・現在、テキスト全部に対して指定していますが、 > その適すとの中で読み取り専用(readonly)かつOncopyでコピーができないようにしています。 > その場合は、idを指定した方法でOKでしょうか? すみません、ちょっとご希望の仕様がはっきりと分からないのですが、 テキストボックスがreadonlyの場合はバックスペースは無効にしたいということでしょうか? その場合はID指定でも可能ですが、以下でもできます。 ------------------------------------------- <html> <head> <title></title> <script> <!-- window.document.onkeydown = function (event){ event = event || window.event; var elem = event.target || event.srcElement; if(elem.type == "text" && elem.readOnly != true) return; if (event.keyCode == 8){ event.keyCode = null; return false; } } // --> </script> </head> <body> <input type="text"/> <input type="text" readonly/> </body> </html> ---------------------------------
- susie-t
- ベストアンサー率86% (37/43)
テキストボックスにIDが指定できるなら以下で可能です。 ------------------------------------------------- <html> <head> <title></title> <script> <!-- window.document.onkeydown = function (event){ event = event || window.event; var elem = event.target || event.srcElement; if(elem.id == "ex") return; if (event.keyCode == 8){ event.keyCode = null; return false; } } // --> </script> </head> <body> <input type="text" id="ex"/> </body> </html> ------------------------------------------------- イベントオブジェクトのtargetプロパティ(Firefox等)、またはsrcElementプロパティ(IE)でイベント発生要素が取得できます。 イベントオブジェクト自体がIEとその他で取得方法が違います。IEはwindow.eventを使用しますが、Firefox等では引数に渡されます。 A = B || C; で、Bがnull OR undefined OR false OR 0 でなければ、AにBが入ります。逆ならCです。
お礼
完璧です!ありがとうございました。 ちなみに・・・現在、テキスト全部に対して指定していますが、その適すとの中で読み取り専用(readonly)かつOncopyでコピーができないようにしています。その場合は、idを指定した方法でOKでしょうか?
補足
言葉が足りなかったようですみません。しかもテキストを適すとにしてしまって…。 そうです。読取専用のテキストの場合は、バックスペース無効です。