バージョン2.1 of Twitter Bootstrapでは、Typeaheadオプションwas addedでコールバック関数を渡すことができます。しかし、私はこれをjQueryのajax呼び出しで動作させるのが難しい状況にありました。TypeAheadとjQueryおよびブートストラップ2.1を使用する
これまで私がこれまで持っていたことは次のとおりです。
HTML
<form class="form-horizontal" action="">
<fieldset>
<div class="control-group">
<label class="control-label" for="myTypeahead">User</label>
<div class="controls">
<input type="text" id="myTypeahead" />
</div>
</div>
</fieldset>
</form>
のJavaScript(jQueryの$(document).ready
関数で設定)
$("#myTypeahead").typeahead({
source: function (query, process) {
$.ajax({
type: "POST",
url: ServiceURL + "/FindUsers",
data: "{ SearchText: '" + query + "' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r1) {
var users = [];
if (r1.d.Records) {
$(r1.d.Records).each(function (index, val) {
users.push(val.User.Name);
});
console.log(users);
process(users);
}
}
});
}
});
Iが先行入力入力にtest
(又はTest
)を入力し、いかなる先行入力結果が表示されていませんしかし、users
変数から記録されるデータは、次のようになります。
["Test User A", "Test User B", "Test User C", "Test User D", "Test User E", "Test User F"]
なぜこれは機能しませんか?
また、参考として、Typeahead JavaScript for Bootstrapです。
「.modal」も含めてこれをダイアログ全体に拡張したので、 .modal、.modal-body { オーバーフロー:可視、 } – epicsmile