J'essaie de modifier le champ «terme» qui est défini par défaut avec la fonction de remplissage automatique jquery ui. Est-il possible de le changer facilement en «q» (requête) sans aller et le changer dans le fichier «core»?
JavaScript:
<script> $(function() { $( "#spotify_song_search" ).autocomplete({ source: "http://ws.spotify.com/search/1/track.json", data: { q: request.term }, dataType: "getjson", minLength: 3, select: function( event, ui ) { alert('select'); } }); }); </script>
Oui, c'est possible en faisant votre propre demande AJAX.
Supposons que vous avez la configuration suivante:
$("#myfield").autocomplete({ source: '/my_url/myservice.xyz' });
L'autocomplète par défaut (comme vous l'avez remarqué) envoie des demandes qui ressemblent à:
Myservice.xyz?term=abc "
Vous pouvez fournir une référence de fonction à l'option source
de l'autocomplète. A l'intérieur de cette fonction, vous pouvez faire votre propre demande AJAX, qui ressemblerait à ceci:
$("#myfield").autocomplete({ source: function (request, response) { // request.term is the term searched for. // response is the callback function you must call to update the autocomplete's // suggestion list. $.ajax({ url: "/my_url/myservice.xyz", data: { q: request.term }, dataType: "json", success: response, error: function () { response([]); } }); }); });
Cela devrait générer une demande qui ressemble plus à:
Myservice.xyz?q=abc
Vous pouvez utiliser l'option source
rappel et faire votre propre demande.