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よりシンプルだと思うんだけどまだしきい高いかなあ???
イメージとかいいつつ実はもう動いてるんだけどね。
※一応細かく何文字以上から発動するかなど指定もできんだねえ。
うくく。