ショボ短歌会

こんにちは。utusemiと申します。
テキストボックスにフォーカスしたら、リストを表示して値を選択出来るプログラムを考えていますが、これをJavaScriptで簡単に実現できますでしょうか?

以下のサイトに私のイメージに近いものがありました。
http://www.futomi.com/books/ajax/source/04/textb …
※コレはAjaxで作られているようです。

上記では、頭文字を入れるとそれに準じた値がでますが、そのように可変でなくて良いのですが、参考になるサイト等ご存知でしたらご教授いただけると助かります。

よろしくお願いします。

A 回答 (2件)

というか・・・それってセレクトボックスのことではないのですか?

    • good
    • 0

こんな流れでどうでしょうか。


<html>
<head>
<title>javascript</title>
<style type="text/css">
#list{
position: absolute;
display:none;
background-color:silver;
border:2px outset;
}
#list.block{display:block;}
</style>
<script>
alist=new Array(
new Array("a01","1111"),
new Array("a02","2222"),
new Array("a03","3333"),
new Array("a04","4444"),
new Array("a05","5555"),
new Array("a06","6666"),
new Array("a07","7777"),
new Array("a08","8888"),
new Array("a09","9999"),
new Array("b01","aaaa"),
new Array("b02","bbbb"),
new Array("b03","cccc"),
new Array("b04","dddd"),
new Array("b05","eeee"),
new Array("b06","ffff"),
new Array("b07","gggg"),
new Array("b08","hhhh"),
new Array("b09","iiii")
)
function se(){
var div = document.getElementById('list').getElementsByTagName('div')
for(var i = 0;i < div.length;i++){
div[i].onclick=function(){
document.forms[0].elements[1].value = this.innerHTML.split(':')[1]
document.getElementById('list').className=""
}
}
}
window.onload=function(){
document.forms[0].elements[0].onkeyup=function(){
t=''
for(var i =0;i < alist.length;i++){
if(alist[i][0].indexOf(this.value) == 0){
t += '<div>' + alist[i][0] +':'+ alist[i][1] + '</div>'
}
}
if(t != ""){
document.getElementById('list').className="block"
document.getElementById('list').innerHTML = t
se()
}else{
document.getElementById('list').className=""
}
}
}
</script>
</head>
<body>
<form>
<input type="text"><br>
<div id="list">a</div>
<input type="text">
</form>
</body>
</html>
動かしていませんのでエラーが出るかもしれません。
あしからず。
    • good
    • 0

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