テキストボックス選択時に背景色をJavaScriptで変更したく、下記のように書きました。
<input type="text" value="テキストボックスです" onfocus="this.style.backgroundColor='#cccccc'" onblur="this.style.backgroundColor='#ffffff'">
これをWindowsXP+IE6で実行したところ、背景色の処理はうまくいくのですが、画面のプロパティのテーマがデフォルトのWindowsXPの場合、元は影のないテキストボックスなのですが、背景色変更時に影つきのテキストボックスになってしまいます。
テーマがWindowsクラシックだと元々影つきなので変化しません。
背景色変更時に影つきにならないようにできませんでしょうか?
それともこれはIE6のバグなのでしょうか?
No.1ベストアンサー
- 回答日時:
私の経験では、これに限らずスクリプトでスタイルを変更すると、「背景色」という設定より以前に、「スタイルなし」→「スタイルあり」に設定され、影響する他のスタイルは、妙なデフォルトになってしまうようです。
たとえば今回の件では、「スタイルあり」になった時点で、borderStyleが設定されてしまうということです(立体 groove とか)。
で、これを解決するには、先に「スタイルあり」にしておくのが最善と思います。
<input type="text" value="テキストボックスです"
style="border:1px solid #7A96DF;background-color:#ffffff;"
onfocus="this.style.backgroundColor='#cccccc'"
onblur="this.style.backgroundColor='#ffffff'">
ちなみにonblurで白に「戻して」いますが、そもそも選択前が白とは限らないので、上記のようにあらかじめ選択前を白にしておいたほうが良いと思います。
なるほど、ありがとうございます。
ただ、既に大量のHTMLを作成後に発覚したので一つ一つstyle属性を追加するのは現実的ではありません。
そこで、CSSファイルでinputタグに対しての指定をしようかと思いましたが、そうするとボタンやチェックボックス、ラジオボタンなども変わってしまいます。
テキストボックスのみのstyleを変更する方法はないですかね?
これは話が変わってしまうので別の質問として投げます。
No.2
- 回答日時:
テキストボックスのみのstyleを、HTMLに手を加えずに変更するには、bodyのonloadイベントで次のスクリプトを呼んでください。
function styleSet() {
for (iTag = 0; iTag < (document.all.tags("input").length); iTag++) {
elmInput = document.all.tags("input")[iTag];
if (elmInput.type == "text" || elmInput.type == "password") {
elmInput.style.border = "1px solid #7A96DF";
elmInput.style.backgroundColor = "#FFFFFF";
}
}
for (iTag = 0; iTag < (document.all.tags("textarea").length); iTag++) {
elmInput = document.all.tags("textarea")[iTag];
elmInput.style.border = "1px solid #7A96DF";
elmInput.style.backgroundColor = "#FFFFFF";
}
}
<body onload="styleSet();">
上記で実現できますが、作成時の都合でこの方法を取るというのも、正直どうかと…。
> 一つ一つstyle属性を追加するのは現実的ではありません
なにも一つ一つ手作業で書かなくても、たとえば、単に
<input type="text"
を
<input type="text" class="TextBox"
に全置換して、CSSには
input.TextBox {
border: ...
というようにするのが自然かつスマートなのでは?
(無駄な動作もない)
度々ありがとうございます。
たしかにそこまでして対応すべきかは疑問に感じています。
今のHTMLに手を一切加えない形であればいいのですが。
結局はIE6のバグってことですかね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptのちょっとした動作...
-
スマホのフォームでのselect複...
-
<input type="hidden" name = "...
-
追加ボタンを押した際に ok ボ...
-
画面表示とともにtableの指定の...
-
【jQuery】tableループ内のIDの...
-
至急!GetElementById でtdの...
-
cookie使用時にundefinedと表示...
-
Selectボックスの幅を自動で広...
-
テキストボックス入力を半角英...
-
確認ダイアログの出し方(JavaS...
-
フォーカスすると初期値が消去...
-
return trueとreturn falseの用...
-
ホームページビルダーでメール...
-
javascriptでASPにデータを渡す
-
フォーム内で記入したクエリ送...
-
アンダーバーのname値は取得で...
-
JavascriptからSubmitして画面...
-
ボタンかリンクをクリックする...
-
javascriptでセレクトボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TextBoxに半角数字以外を入れた...
-
tabindexの取得
-
HTMLファイル同士での値渡し
-
入力するテキストエリアをボタ...
-
マイナスなら赤字で表示したい...
-
ページ間で変数を保持したい
-
プルダウンで選択された値を別...
-
VBscriptの配列変数をJavascrip...
-
どちらかひとつのテキストボッ...
-
jQueryのdatepickerの日付が選...
-
テキストボックスに入力した色...
-
HTMLとJavaScriptで作った表示...
-
大文字か小文字かを判断する方法
-
現在JavaScriptのonLoad,onUnlo...
-
Request.Form(key)の中身をクリ...
-
disabledの点で。
-
改行コード変換しても、引数の...
-
AからBへ変わった時だけ発動す...
-
テキストエリアの制限字数以上...
-
ラジオボタンで入力項目の可・...
おすすめ情報