tôi muốn chạy javascript chức năng ngay sau người dùng chọn một giá trị sử dụngtwitter bootstrap Typeaheadxử lý sự kiện được chọn trong twitter bootstrap Typeahead?
tôi tìm kiếm về một số điều như kiện được chọn
tôi muốn chạy javascript chức năng ngay sau người dùng chọn một giá trị sử dụngtwitter bootstrap Typeaheadxử lý sự kiện được chọn trong twitter bootstrap Typeahead?
tôi tìm kiếm về một số điều như kiện được chọn
$('.typeahead').on('typeahead:selected', function(evt, item) {
// do what you want with the item here
})
https://github.com/twitter/typeahead.js khác với kiểu gõ Bootstrap – Utopik
Cách tiếp cận này hoạt động cho https://twitter.github.io/typeahead.js/ không phải cho bootstrap twitter. (typeahead bây giờ là tách ra từ twitter bootstrap) –
là có cách nào để có được chìa khóa ép cho xử lý này? các evt var dường như không có một 'mà' propery – HussienK
lần đầu tiên tôi đã đăng một câu trả lời trên đây (nhiều của thời gian tôi đã tìm thấy một câu trả lời ở đây mặc dù), vì vậy đây là sự đóng góp của tôi, hy vọng nó sẽ giúp. Bạn sẽ có thể phát hiện thay đổi - hãy thử cách này:
function bob(result) {
alert('hi bob, you typed: '+ result);
}
$('#myTypeAhead').change(function(){
var result = $(this).val()
//call your function here
bob(result);
});
Đã đánh dấu xuống vì đây không phải là cách được hỗ trợ cũng như không được đề xuất để xử lý các yếu tố được chọn trên typeahead, xem tại đây: https://github.com/twitter/typeahead.js tại: typahead: đã chọn – Oddman
Tôi đã tạo tiện ích bao gồm tính năng đó.
$('.typeahead').typeahead({
updater: function(item) {
// do what you want with the item here
return item;
}
})
Cách chính thức để làm những gì được yêu cầu và hoạt động tốt :) – PierrickM
Để giải thích về cách typeahead làm việc cho những gì bạn muốn làm ở đây, lấy ví dụ đoạn mã sau:
trường nhậpHTML:
<input type="text" id="my-input-field" value="" />
Khối mã JavaScript:
$('#my-input-field').typeahead({
source: function (query, process) {
return $.get('json-page.json', { query: query }, function (data) {
return process(data.options);
});
},
updater: function(item) {
myOwnFunction(item);
var $fld = $('#my-input-field');
return item;
}
})
Giải thích:
$('#my-input-field').typeahead(
source:
tùy chọn để lấy danh sách JSON và hiển thị nó cho người dùng.updater:
. Lưu ý rằng nó chưa cập nhật trường văn bản với giá trị được chọn.item
và thực hiện những gì bạn muốn với biến đó, ví dụ: myOwnFunction(item)
.$fld
, trong trường hợp bạn muốn làm điều gì đó với nó. Lưu ý rằng bạn không thể tham chiếu trường bằng $ (this).return item;
trong tùy chọn updater:
để trường nhập thực sự được cập nhật với biến số item
.Theo documentation của họ, cách thích hợp xử lý selected
sự kiện là bằng cách sử dụng bộ xử lý này sự kiện:
$('#selector').on('typeahead:select', function(evt, item) {
console.log(evt)
console.log(item)
// Your Code Here
})
source: function (query, process) {
return $.get(
url,
{ query: query },
function (data) {
limit: 10,
data = $.parseJSON(data);
return process(data);
}
);
},
afterSelect: function(item) {
$("#divId").val(item.id);
$("#divId").val(item.name);
}
liên kết đến: http://stackoverflow.com/a/11747290/212702 –
Câu trả lời đúng không phải là câu trả lời được chọn mặc dù ... :( – Abhishek