đang theo tài liệu từ trang web giao diện người dùng và xem một số hướng dẫn và có loại mã hoạt động, ajax trong danh sách cụm từ tôi muốn và bạn có thể chọn một và nó đặt giá trị và sau đó ",". Tuy nhiên, sau đó nó không nhắc lại cho một giá trị thứ hai.jQuery tự động hoàn thành với nhiều giá trị ajax'd
Ngoài ra, khi tôi nhập một phần và nói 10 mục bật lên, tabbing chỉ cần đi đến trường biểu mẫu tiếp theo, không chắc chắn những gì sai với .bind của tôi, có lẽ là một thiết lập? Nếu bất cứ ai không quan tâm đến một cái nhìn, nó sẽ được nhiều đánh giá cao!
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
jQuery('#tagSearch')
.bind('keydown', function(event) {
if (event.keyCode === jQuery.ui.keyCode.TAB &&
jQuery(this).data('autocomplete').menu.active) {
event.preventDefault();
}
})
.autocomplete({
autoFocus: true,
source: function(request, add) {
console.log('source');
jQuery.getJSON('/get-tags-like.php?term_start=' + request.term, function(response) {
var possibleTerms = [];
jQuery.each(response, function(i, val) {
possibleTerms.push(val.name + ' ' + '(' + val.count + ')');
});
add(jQuery.map(possibleTerms, function(item) {
console.log(possibleTerms);
return item;
}));
});
},
focus: function() {
console.log('focus');
return false;
},
select: function(event, ui) {
console.log('select');
var terms = split(this.value);
terms.pop();
terms.push(ui.item.value);
terms.push('');
this.value = terms.join(',');
// At this point, example:
// Sony (5)
var currentVal = this.value;
// Sony (5) - Gets inserted as "Sony"
currentVal = currentVal.replace(/\s\(.\)/, '');
this.value = currentVal;
return false;
},
minLength: 2
});
Liệu sự ràng buộc tự động hoàn thành của sự kiện keydown có gây trở ngại cho bạn không? –