重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

四苦八苦している初心者です。よろしくお願いします。
バックスペースキーを以下のように無効にしています。
window.document.onkeydown = function ()
{if (event.keyCode == 8)
{event.keyCode = null;
return false;}}
フォームに有効にしたいテキストが存在するのですが、どのようにしたら有効になりますでしょうか?
<input type="text" name="set" size="60" value="ABC">
全体にバックスペースを無効にし、一部だけ解除したいという内容です。よろしくお願いします。

A 回答 (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>
---------------------------------------
    • good
    • 0

> ちなみに・・・現在、テキスト全部に対して指定していますが、


> その適すとの中で読み取り専用(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>
---------------------------------

この回答への補足

言葉が足りなかったようですみません。しかもテキストを適すとにしてしまって…。
そうです。読取専用のテキストの場合は、バックスペース無効です。

補足日時:2007/09/05 16:15
    • good
    • 0

テキストボックスに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です。
    • good
    • 0
この回答へのお礼

完璧です!ありがとうございました。
ちなみに・・・現在、テキスト全部に対して指定していますが、その適すとの中で読み取り専用(readonly)かつOncopyでコピーができないようにしています。その場合は、idを指定した方法でOKでしょうか?

お礼日時:2007/09/04 15:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!