- ベストアンサー
テキスト入力の制御方法について
- テキスト入力の制御方法について質問です。テキストとチェックボックスがあり、チェックボックスにチェックをした段階でテキストの入力を無効にする方法を知りたいです。
- また、テキストを入力している状態でもチェックボックスにチェックをすれば入力してあるテキストを無効にする方法も教えてください。
- 現在はphpでエラーチェックを行っていますが、javascriptで入力制御をする方法がわかりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
IEの場合disabledされたテキストボックスの文字色を変えることは できませんので、背景色で調整ください <script> function setPrevDisable(obj){ var n=obj.previousSibling; while(n){ if(n.nodeName=="INPUT" && n.type=="text") break; n=n.previousSibling; } //n.value=""; n.disabled=obj.checked; n.style.backgroundColor=obj.checked?"#c0c0c0":"#ffffff"; } </script> <form> <input type="text" name="num" value="" /> <input type="checkbox" name="check" value="" onClick="setPrevDisable(this)"> </form>
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
この場合、入力できないというのはデータを無効にするとの 認識でよろしいですね? であれば、disabledがよろしいかと。 またチェックをしたときにテキストをクリアするのであれば コメントアウトしてあるvalueに""を代入する行を有効にしてください <script> function setPrevDisable(obj){ var n=obj.previousSibling; while(n){ if(n.nodeName=="INPUT" && n.type=="text") break; n=n.previousSibling; } //n.value=""; n.disabled=obj.checked; } </script> <form> <input type="text" name="num" value="" /> <input type="checkbox" name="check" value="" onChange="setPrevDisable(this)"> </form>
お礼
早速のお返事ありがとうございます! 思うように動作させることができました^^ テキストを入力できるか否かをわかりやすくするために チェックがついている場合はテキストの背景をグレーにするなど 安易に判別ができればいいかと思ったのですがどう変更すれば いいいもでしょうか? <input type="checkbox" name="check" value="" onChange="setPrevDisable('#666666')"> のように背景色を設定しjs側で背景の指定などを行うという 流れになるかとは思うのですが正解に結び付けません^^;
- SAYKA
- ベストアンサー率34% (944/2776)
お礼
お返事ありがとうございます。 背景色もjs側で制御できるのですね~参考になります。 おかげさまで解決できましたので締め切らせて頂きます。 わかりやすいご説明をして頂きありがとうございました!