
Selectボックスの一覧表示方法
いつもお世話になりますm(__)m
<input type='text' name='hoge1'>
<select name='hoge2'>
<option value='1'>Aあああ</option>
<option value='2'>Bいいい</option>
<option value='3'>Cううう</option>
</select>
上記のフォームがあった場合、hoge1を入力して、TABキーでhoge2のSelectボックスにフォーカスが移動した時、hoge2の一覧を表示させたいのですが、可能でしょうか?
hoge2にフォーカスがある時に、キーボードのALT+↓を押した時と同じ動作を自動でしたいと思っています。
※Accessでいうところの、xx.Dropdownと同じです
いろいろ調べたところ、「onfocus="this.size=5"」でSelectボックス自体のサイズを変更して表示する方法は見つかりました。
しかし、上記のようにSelectボックス自体のサイズを変更せず、まさにALT+↓を押した状態(一覧が表示される状態)にしたいと考えています。
javascriptのonfocusで出来そうな気がするのですが、お詳しい方、是非ともお力添え下さい。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
JavaScriptとActiveXコントロールの連携などで実装可能と思いますが
擬似的なリスト表示で構わないのであれば
DHTMLとCSSを使って擬似的にフォーカス取得時に
ドロップダウンリストを表示する方法はどうでしょうか。
<body onLoad="XXXX">
<input type='text' name='hoge1'>
<select name='hoge2'>
<option value='1'>Aあああ</option>
<option value='2'>Bいいい</option>
<option value='3'>Cううう</option>
</select>
<DIV id="myList"><DIV>
</body>
◆ページonLoad時 (DIVタグ非表示)
document.getElementById("myList").style.visibility = "hidden";
◆Selectボックスのonfocus時 (DIVタグ表示)
var obj document.getElementById("myList");
obj.style.color = '#000000'; //文字色黒
obj.style.fontSize ='12';
obj.style.backgroundColor ='#ffffff';
obj.style.borderTopColor ='#000000';
obj.style.borderBottomColor ='#000000';
obj.style.borderLeftColor ='#000000';
obj.style.borderRightColor ='#000000';
obj.style.left = 10;
obj.style.top = 10;
obj.style.width = '498px';
obj.style.height = '23px';
//リスト部編集
obj.innerHTML = "Aあああ<BR>Bいいい<BR>Cううう";
obj.style.visibility = "visible";
◆Selectボックスのその他イベント時 (DIVタグ非表示)
document.getElementById("myList").style.visibility = "hidden";
ご回答ありがとうございますm(__)m
なるほど~そういうやり方もあるんですね!
サンプルを掲載頂き、感謝ですm(__)m
少し試してみます!
ありがとうございましたm(__)m
また何かの際には宜しくお願い致します。
No.4
- 回答日時:
ご回答ありがとうございますm(__)m
やはり無理なんですかぁ(>_<)
ありがとうございましたm(__)m
また何かの際には宜しくお願い致します。
No.3
- 回答日時:
続きです。
Windows/IE だけでよいなら、ActiveXのWscriptSkell利用で簡単に出来ました。(ユーザーがActiveXの使用を有効に設定してくれなきゃだめですが)
(例)
<body>
<input type='text' name='hoge1' id="hoge1">
<select name='hoge2' id="hoge2" onclick="alert('click')">
<option value='1'>Aあああ</option>
<option value='2'>Bいいい</option>
<option value='3'>Cううう</option>
</select>
<script type="text/javascript" charset="utf-8">
<!--
var wsh = new ActiveXObject("WScript.Shell");
var target=document.getElementById("hoge2");
document.getElementById("hoge1").onkeydown=function(){
var eve=window.event;
var key=eve.keyCode;
if(key==9){
eve.returnValue = false;
target.focus();
wsh.SendKeys ("%{DOWN}");
}
}
// -->
</script>
</body>
参考URL:http://msdn.microsoft.com/ja-jp/library/cc364423 …
ご回答ありがとうございますm(__)m
サンプルまでお書き頂き、ありがとうございます!
ただ、やはりIE限定とかになっちゃうんですね(^-^;)
ありがとうございましたm(__)m
また何かの際には宜しくお願い致します。
No.2
- 回答日時:
Selectボックスをクリックすると、キーボードのALT+↓を押した時と
同じように一覧表示になりますよねえ、ところがDOMのイベントで、
クリックを発生させても、一覧表示になりません。keydownでもkeypress
でもDOMのイベントからは制御不能みたいです。
(Windows/IEだけならActiveXで出来るのかもしれませんが、調べてません)
ちなみにキーコードは
Tab(9)、Alt(18)、←(37)、↑(38)、→(39)、↓(40)
で、DOMでコードを拾ったり、イベント生成できるので、
いろいろやってみましたが、全部×でした。
下のサンプルで、hoge1でタブキー押したら、hoge2に
focusしてクリックイベントが発生します。イベントが発生しているのは
アラートで確認できるのですが、一覧表示にはなりません。
クリックイベントの他、
var ee=document.createEvent("KeyboardEvent");
ee.initKeyEvent("keydown",true,true,null,false,false,false,false,40,0)
target.dispatchEvent(ee);
とか、いろいろ試したけど全部×でした。
(テストしたサンプル)
<body>
<input type='text' name='hoge1' id="hoge1">
<select name='hoge2' id="hoge2" onclick="alert('click')">
<option value='1'>Aあああ</option>
<option value='2'>Bいいい</option>
<option value='3'>Cううう</option>
</select>
<script type="text/javascript" charset="utf-8">
<!--
var target=document.getElementById("hoge2");
document.getElementById("hoge1").onkeydown=function(e){
var eve=e?e:window.event;
var key=eve.keyCode;
if(key==9){
try{
eve.preventDefault();
}catch(e){
eve.returnValue = false;
}
target.focus();
try{
var ee = document.createEvent("HTMLEvents");
ee.initEvent("click",true,false);
target.dispatchEvent(ee);
}catch(e){
target.click();
}
}
}
// -->
</script>
</body>
ご回答ありがとうございますm(__)m
サンプルを掲載頂き、感謝ですm(__)m
皆様のおかげで無理とわかっただけでも助かりました!
ありがとうございましたm(__)m
また何かの際には宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript 電車の運賃を出すプログラムを作っています。 2 2022/06/22 09:36
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript 1度きりではなく、繰り返し、挙動が変わるようにしていただきたいです。 1 2022/07/03 15:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<input>の選択肢をプルダウンメ...
-
同一IDで個数を分けたい。
-
プルダウンメニューのvalue値取...
-
プルダウン選択を変更すると、...
-
スマホのフォームでのselect複...
-
二つのセレクトボックス間での...
-
初心者です。javascript の pla...
-
return falseが効かない
-
console.logがどうしても2つ機...
-
javascript-変数がよくわかりま...
-
【JS】selectでchangeした時の...
-
超初心者です。buttonをselect...
-
プルダウンのoptionの表示・非...
-
jsでは、'で区切った部分を改行...
-
javascriptでセレクトボックス...
-
全てのselect要素をデフォルト...
-
addclassがうまく働きません
-
セレクトボックスを2つ選択して...
-
プルダウンメニューに連動する...
-
JavaScriptで<select>の<option...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
<input>の選択肢をプルダウンメ...
-
selectを変更不可にしたい
-
Selectボックスの一覧表示方法
-
同じ名前のセレクトがある場合...
-
スマホのフォームでのselect複...
-
全てのselect要素をデフォルト...
-
セレクトボックスで配列を呼び...
-
JavaScriptで<select>の<option...
-
javascriptでセレクトボックス...
-
プルダウンの値によって活性・...
-
ラジオボタンの値が取得できな...
-
複数プルダウンで検索
-
javascript:データを日本語で...
-
selectのnameが配列の場合
-
フォームセレクトに項目を追加...
-
select要素のvalueを配列で取得...
-
プルダウンのoptionの表示・非...
-
selectのすべての値を送信する方法
-
ラジオボタンとプルダウンを連...
おすすめ情報