Doge log

Abby CTO 雑賀 力王のオフィシャルサイトです

AutoComplete

とりあえずAutoCompleteをできるかなあと模索。
他ライブラリと連携しないと辛いので第一弾としてscript.aculo.usかな。
あくまで以下イメージ

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script src="/teeda-example/js/scriptaculous/prototype.js"></script>
<script src="/teeda-example/js/scriptaculous/effects.js"></script>
<script src="/teeda-example/js/scriptaculous/controls.js"></script>
<script src="/teeda-example/js/autocomplete.js"></script>
<script>
function init() {
  teedaAutocompleter('auto_complete', 'auto_complete_box', {component:'ajaxBean',action:'autoComplete'});
}

Event.observe(window, 'load', init);
</script>
<style type="text/css">
#auto_complete_box ul{
border: 1px solid #cccccc;
	list-style:none;
	padding:1px;
	background-color:#ffffff;
}
#auto_complete_box .selected {
	background-color: #ccccff;
}
</style>
</head>
<body>
<input type="text" name="name" id="auto_complete" />
<div id="auto_complete_box" />
</body>
</html>

要は

  teedaAutocompleter('auto_complete', 'auto_complete_box', {component:'ajaxBean',action:'autoComplete'});

ココ大事ですよと。
指定は入力されるTextのidと結果が入ってくるアップデート対象のdivのidとS2コンポーネント登録名、メソッド名ぐらい。
Javaの実装側は

{
data:[結果リスト]
}

とシンプルにJSON返してくれればそれだけでOK.。
うーん、DWRよりシンプルだと思うんだけどまだしきい高いかなあ???
イメージとかいいつつ実はもう動いてるんだけどね。
※一応細かく何文字以上から発動するかなど指定もできんだねえ。
うくく。