ha seguito la documentazione dal sito dell'interfaccia utente, ha esaminato un numero di esercitazioni e ha ottenuto il mio codice funzionante, è ajax nella lista dei termini che desidero, e puoi selezionarne uno e posiziona il valore e quindi ",". Tuttavia, in seguito non richiede nuovamente un secondo valore.jQuery completamento automatico con più valori Ajax
Inoltre, quando inserisco un partial e dico 10 voci pop-up, il tabbing va al campo modulo successivo, non è sicuro di cosa c'è che non va nel mio .bind, forse un'impostazione? Se qualcuno non mi dispiacerebbe dare un'occhiata, sarebbe molto apprezzato!
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
});
Il bind del completamento automatico dell'evento keydown interferirebbe con il tuo? –