備忘録

jquery:autocompleteの改造

投稿日:2011年11月19日 更新日:

久々の更新です。個人的な備忘録なので、あしからず・・・(こうやったほうが、良いよ!!というご意見はどしどしください)

最近はjqueryを表示に重宝しています。
仕事柄、WEBシステムの管理画面を多く作るのですが、マスターデータを参照してIDを取得したいことが多々あります。
HTMLのselectを利用してコンボボックスを作ってもいいのですが、選択肢が大量にある場合探せないし、と言ってpopupウィンドウで選択させるのも・・・

そこで、jqueryのautocompleteを利用して、隠し項目にidをセットする方法が取れないか

すなわち、autocompleteで情報を取得して、入力フィールドには名称を隠し項目にIDをセットする方法を模索しました

結構簡単でしたが、忘れないようにメモしておきます。

まず、autocompleteを呼び出すときにオプションを追加しました。オプションの名称はなんでも良かったのですがここでは”idInput”としました。

呼び出し方は

$('#id').autocomplete('url', {
	onItemSelect : selectItem,
	onFindValue : findValue,
	formatItem : formatItem,
	idInput : "chirashi_place"
});

idInput : “chirashi_place”の部分を追加、でautocomplete..jsは以下の部分を修正しました。
function selectItem()の$input.val(v);の部分を

var idInput = options.idInput;
if(idInput!=""){
	listData = v.split(":");
	$('#'+idInput).val(listData[0]);
	$input.val(listData[1]);
}else{
	$input.val(v);
}

更に呼び出しているスクリプトからの戻り値を「”値”\n”値”\n”値”\n”値”\n”値”\n”値”\n”値”」だったものを「”id:値”\n”id:値”\n”id:値”\n”id:値”\n”id:値”\n”id:値”\n”id:値”」に変更して対応完了です。

細かい処理は割愛してあります。
再選択した際に、隠し項目のidをクリアするとか、これだけでは上手くいかないことも多いかと思いますが・・・

とりあえず

ad

ad

-備忘録
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スパム対策 * Time limit is exhausted. Please reload the CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

備忘録:prettyPopinで開くポップアップが元のページより縦長の場合

久々の更新です、ご無沙汰しています。 とある案件で、ポップアップウィンドウを多用する物があったので 昔から使っているprettyPopinを使用して開発を行なっています。 開かれたポップアップが元のペ …

MAC OSX10.9 Mavericksをクリーンインストール・USBメモリ編

先日、Mac OSX10.9 MavericksをMBAにクリーンインストールを書きましたが、iMacもクリーンインストールすることにしました。折角なので、USBメモリをインストールメディアとして使用 …

MAC OSX10.9 MavericksをMBAにクリーンインストール

MacBookAir late2010に最新のOS「Mavericks」をインストールしましたので、インストール手順を簡単に公開します。 インストール環境 MacBook Air Late 2010 …

備忘録:jQueryで追加されたDOM要素にイベントを割り当てる

jQueryを多用して、WEBベースの管理システムを開発中です。 append等で、初期表示されたHTMLに要素を追加する際の注意点 Javascriptでは初期表示された際の各要素にはイベントが割り …

iMac再インストール

仕事で使っているiMacが動かなくなった 普段使っている各種ツールを起動するとフリーズするようになってしまった・・・ 特に何かをしたわけではないのに いろいろ探って復旧させるよりも、再インストールのほ …