Typeahead Bloodhound requête POST
Je ne peux pas sembler obtenir une requête à distance à l'utilisation afficher correctement.
var creditors = new Bloodhound({
datumTokenizer: function (d) {
return Bloodhound.tokenizers.whitespace(d.value)
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "../getCreditors",
replace: function(url, query) {
return url + "#" + query;
},
ajax : {
type: "POST",
data: $.param({q: queryInput.val()})
}
}
});
la queryInput.val() ne permet pas d'obtenir la valeur actuelle de l'objet uniquement la valeur au moment de chien de saint-hubert objet est instancié. Comment puis-je obtenir la chaîne de requête en ajax options de données?
- stackoverflow.com/a/46927923/3966458 sans ajax
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser beforeSend de $.ajax
this.q = query
et le remplacement dequeryInput.val()
avecthis.q
maisthis.q
montre queundefined
dans le débogueurbeforeSend
fonction.Vous pouvez utiliser le
prepare
propriété avecremote
ouprefetch
, l'esprit que la signature de la fonction des modifications.Un exemple avec
prefetch
:Rappelez-vous que avec
remote
la signature de la fonction change avecfunction(query, settings)
.Pour référence: github.com/twitter/typeahead.js/issues/1236
data
en cas de besoin (par exemple, la valeur actuelle d'un autre champ, etc.). L'actuel tapé en valeur sera dans lesquery
variableJ'ai trouvé l'ajax beforeSend méthode holylaw mentionné marchent le mieux.
Il était important de modifier l'url en tant que bien. Sinon Typeahead n'ai pas la peine de faire une autre demande. Donc j'ai juste ajouté un faux paramètre à la fin de l'url. Comme ce
De cette façon, lorsque les données ajax emballés changé, j'étais assuré une nouvelle requête au serveur.