2008年12月27日土曜日

今さらながら入力補完JavaScript(3)

【段取り】
(2)手作りリストボックスの確認

【詳細】
(2)手作りリストボックスの確認
DIV要素を配列から生成します。意外と簡単にできました。

ディレクトリ構造は変更なしです。
WebContent
- js/prototype.js
- js/my.js
- a.html
- my.css

■my.js
// 外出しです。
var div1 = null;

Event.observe(window, 'load', function(event) {
// onFocus イベントを登録します。
Event.observe('hoge', 'focus', function(event) {
if (div1) {
// div1がnullでなければvisibleにします。
$('candidate').style.visibility = "visible";
} else {
// nullの場合はエレメントを作成して<div id="candidate"></div>に
// appendします。
for (i = 0; i < week.length; i++) {
div1 = new Element('div', {'id' : 'div1'+i });
div1.innerHTML = week[i];
div1.style.backgroundColor = "#FF0000";
div1.style.width = "100px";
$('candidate').appendChild(div1);
}
}
});
// onBlur イベントを登録します。
Event.observe('hoge', 'blur', function(event) {
if (div1) {
// div1がnullでない場合はhiddenにします。
$('candidate').style.visibility = "hidden";
}
});
});

■a.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<script type="text/css" src="my.css"></script>
<!-- 変数をmy.jsより先に読み込む必要があります。 -->
<script type="text/javascript">
var week = new Array("日","月","火","水","木","金","土");
</script>
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/my.js"></script>
<title>Ajax tutorial - a</title>
</head>
<body>
<input type="text" id="hoge" name="hoge" />
<div id="candidate" />
</body>
</html>

■my.css
@CHARSET "UTF-8";
/* CSSは表示と関係ありません */
#div1 {
visibility:hidden;
}

.

0 件のコメント: