Trong phiên bản 2.1 of Twitter Bootstrap, khả năng chuyển một chức năng gọi lại trong tùy chọn Typeahead was added. Tuy nhiên, tôi đã có một thời gian khó khăn nhận được điều này để làm việc với một cuộc gọi jQuery ajax.Sử dụng TypeAhead với jQuery và Bootstrap 2.1
Đây là những gì tôi có cho đến nay.
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 (thiết lập trong hàm 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);
}
}
});
}
});
Khi tôi gõ test
(hoặc Test
) trong đầu vào Typeahead, không có kết quả Typeahead được hiển thị , nhưng dữ liệu được ghi lại từ biến số users
trông giống như sau:
["Test User A", "Test User B", "Test User C", "Test User D", "Test User E", "Test User F"]
Tại sao tính năng này không hoạt động?
Ngoài ra, để tham khảo, đây là Typeahead JavaScript for Bootstrap.
Tôi đã mở rộng tính năng này thành toàn bộ hộp thoại bằng cách bao gồm ".modal", vì vậy: .modal, .modal-body { tràn: hiển thị; } – epicsmile