jQuery-ui autocompleteの使い方(複数パラメータ入力 and JSON配列読み込み)
ちまたで使われているWeb画面での入力補完を私もやってみたかったのです。
ライブラリは使いやすくて奥深い、jQuery。jQueryで使える入力補完のライブラリを探しました。
jQueryUIのautocompleteがよさそうです。
ajaxでサーバーに複数フォーム項目のデータを送信したかったのです。入力中のフォームの値はtermオプションで自動的にパラメータが追加されています。他のフォームの値をパラメータとして追加で渡したかったのです。
なおかつJSON配列でデータを受け取るようにしたかったのです。
サンプル:
["京都","京橋","京田辺"]
単純にURLにGETパラメータで追加しようとしてもできませんでした。関数ロード時の値が登録されていました。入力補完の実行時にパラメータを渡したいのです。
jQueryで$.ajax()関数を使用するのがよさそうでした。
$(function(){ $("#name").autocomplete({ source: function(request, response) { $.ajax({ url: "data.json", dataType: "json", data: { term: request.term, org: $("#org").val() }, success: function(data) { response($.map(data, function(item) { return { label: item, value: item } })) } }) } }) });
successは悩みました。実現は割とシンプルにできました。
動作できました!