お世話になります。
現在作成しているwebページがあり、下記のようにプルダウンリストの背景色を設定しております。
<select>
<option style="background-color: #FF0000;">サンプル1</option>
<option style="background-color: #00FF00;">サンプル2</option>
<option style="background-color: #0000FF;">サンプル3</option>
<option style="background-color: #FFFFFF;">サンプル4</option>
</select>
このページにおきまして、サンプル3を選択したときに、プルダウンリストに「サンプル3」と表示され、背景色が#0000FFになるようにしたいのですが、
上記のままだと、IEでは背景色も変化しますが、firefoxですとプルダウンリスト内に「サンプル3」と表示されても背景色は白のままです。
IEとおなじ動きになるようにするには、どうしたらよいでしょうか。
ちなみに、
<select style="background-color: #FF0000">
にすると、IE、firefoxともにプルダウンリストの背景色が変更できたので、javascriptでoptionのvalueをとり、それをselectのstyleに設定できれば。。。
と考えたのですが、javascriptはほぼ無知なので、上記の方法でも解決できずでした。
簡単に解決できる方法などございますでしょうか。
もしくは、javascriptで解決できますでしょうか。
どうぞ宜しくお願いいたします。
No.3ベストアンサー
- 回答日時:
「スタイルシートのクラス名」
<html>
<head>
<title>TAG index Webサイト</title>
<script type="text/javascript">
<!--
function chBackGround(e) {
e.className=e.options[e.selectedIndex].className;
document.getElementById('submit').focus();
}
window.onload = function() {
document.getElementById('key').className='color01';
}
// -->
</script>
<style type="text/css">
<!--
.color01 {
background-color: #FF0000;
}
.color02 {
background-color: #00FF00;
}
.color03 {
background-color: #0000FF;
}
.color04 {
background-color: #FFFFFF;
}
-->
</style>
</head>
<body>
<form name="f1" action="./DB.cgi" method="POST">
<div>
<select id="key" name="key" onchange="chBackGround(this)">
<option class="color01">
サンプル1
</option>
<option class="color02">
サンプル2
</option>
<option class="color03">
サンプル3
</option>
<option class="color04">
サンプル4
</option>
</select>
</div>
<input id="submit" type="submit" value="表示">
<input type="hidden" name="mode" value="display">
</form>
</body>
</html>
No.2
- 回答日時:
>>> <select style="background-color: #FF0000">
>>> にすると、IE、firefoxともにプルダウンリストの背景色が変更できた
との事なので、これをJavaScriptで書くと
------------------------------------------------------------
<script type="text/javascript">
<!--
var bc = ["#FF0000","#00FF00","#0000FF","#FFFFFF"];
function chBackGround(e) {
e.style.backgroundColor=bc[e.selectedIndex];
}
window.onload = function() {
document.getElementById('key').style.backgroundColor=bc[0];
}
// -->
</script>
------------------------------------------------------------
また、<select>タグは
<select id="key" name="key" onChange="chBackGround(this)">
としてみてください。
ご回答ありがとうございます。
javascriptに弱い私ですが、正に思っていた動きになりました!
ありがとうございました。
追加質問で大変申し訳ないのですが、
var bc=の部分に、16進数を記載するのではなく、スタイルシートのクラス名を指定することは可能でしょうか。
例えば、
var bc = ["color01","color02","color03","color04"];
とし、<select>タグ部分に
<select class="######">(######の部分をcolor01~color04まで、選択した値が入る)
こんなイメージです。
お手隙なときにでもご回答いただければと思います。
ひとまず、ありがとうございました!!
No.1
- 回答日時:
たとえばこんな感じで
<script type="text/javascript">
window.onload=function(){
var tags=document.getElementsByTagName("select");
for(var i=0;i<tags.length;i++){
tags[i].style.backgroundColor=tags[i].options[tags[i].selectedIndex].style.backgroundColor;
tags[i].onchange=function(){
this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor;
}
}
}
</script>
<select>
<option style="background-color: #FF0000;">サンプル1-1</option>
<option style="background-color: #00FF00;">サンプル1-2</option>
<option style="background-color: #0000FF;">サンプル1-3</option>
<option style="background-color: #FFFFFF;">サンプル1-4</option>
</select>
<select>
<option style="background-color: #FF0000;">サンプル2-1</option>
<option style="background-color: #00FF00;">サンプル2-2</option>
<option style="background-color: #0000FF;">サンプル2-3</option>
<option style="background-color: #FFFFFF;">サンプル2-4</option>
</select>
<select>
<option style="background-color: #FF0000;">サンプル3-1</option>
<option style="background-color: #00FF00;">サンプル3-2</option>
<option style="background-color: #0000FF;">サンプル3-3</option>
<option style="background-color: #FFFFFF;">サンプル3-4</option>
</select>
ご回答ありがとうございます。
参考にさせていただきましたが、javascriptに弱い私ではイマイチ理解できず、思うような動きになりませんでした(涙)
こちらのソースをもとに、勉強させていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript 1度きりではなく、繰り返し、挙動が変わるようにしていただきたいです。 1 2022/07/03 15:50
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- HTML・CSS HTMLで特定の文字だけ色を変えたいのですが、指定した色と違う色が反映してしまいます。 下記、「前」 5 2023/06/27 12:08
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<SELECT>タグの折り返し
-
文字の横にプルダウンを表示さ...
-
セレクトメニューで2つの項目...
-
セレクトボックスのselected属...
-
複数列を持ったリストボックス...
-
selectタグ内の特定のoptionの...
-
テーブル内でドロップダウンメ...
-
プルダウンメニューがプルアップに
-
折りたたみ式メニューの作り方
-
セレクトボックスの「選択して...
-
セレクトボックスの中を一部隠...
-
select boxとinput valuの連動
-
ドロップダウンリストのselecte...
-
ドロップダウンリストの表示に...
-
セレクトボックスである項目を...
-
プログラムをテーブル形式にし...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
formで特定のinputを送信しない...
-
16進の10進変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の横にプルダウンを表示さ...
-
セレクトメニューで2つの項目...
-
<SELECT>タグの折り返し
-
テーブル内でドロップダウンメ...
-
セレクトボックスのselected属...
-
セレクトボックスの「選択して...
-
同じものを繰り返し表示させる
-
セレクトメニューで選んだ値を...
-
セレクトボックスである項目を...
-
SELECT OPTIONの中身をコピペ...
-
複数列を持ったリストボックス...
-
セレクトボックスから別窓にジ...
-
プルダウンメニューのボタンの...
-
プルダウンリストの背景色の指定
-
プルダウンで別項目に値を代入...
-
[html]ラジオボタンを使った診...
-
selectタグ内の特定のoptionの...
-
フォームの「キャンセル」ボタ...
-
プルダウンメニューで中央表示
-
select boxとinput valuの連動
おすすめ情報