<span>window.DATALIST = { </span> <span>cache: {}, </span> <span>init: function() </span> <span>{ </span> <span>var _this = this, </span> <span>this.cache.$form = $('formid'); </span> <span>this.cache.$suburbs = this.cache.$form.find('datalist#suburbs'); </span> <span>this.cache.$suburbInput = this.cache.$form.find('input[name="suburb"]'); </span> <span>this.cache.$postcodeInput = this.cache.$form.find('input[name="postcode"]'); </span> <span>this.cache.$stateInput = this.cache.$form.find('input[name="state"]'); </span> <span>//grab the datalist options from JSON data </span> <span>var checkMembershipRequest = $.ajax({ </span> <span>type: "GET", </span> <span>dataType: "JSON", </span> <span>url: "/php/suburbs.php" </span> <span>}); </span> checkMembershipRequest<span>.done(function(data) </span> <span>{ </span> <span>console.log(data); </span> <span>//data could be cached in the browser if required for speed. </span> <span>// localStorage.postcodeData = JSON.stringify(data); </span> <span>//add options to datalist </span> $<span>.each(data.suburbs, function(i<span>,v</span>) </span> <span>{ </span> _this<span>.cache.$suburbs.append(''+i+''); </span> <span>}); </span> <span>//hook up data handler when suburb is changed to autocomplete postcode and state </span> _this<span>.cache.$suburbInput.on('change', function() </span> <span>{ </span> <span>// console.log('suburb changed'); </span> <span>var val = $(this).val(), </span> selected <span>= _this.cache.$suburbs.find('option[data-value="'+val+'"]'), </span> postcode <span>= selected.data('postcode'), </span> state <span>= selected.data('state'); </span> _this<span>.cache.$postcodeInput.val(postcode); </span> _this<span>.cache.$stateInput.val(state); </span> <span>}); </span> <span>}); </span> checkMembershipRequest<span>.fail(function(jqXHR<span>, textStatus</span>) </span> <span>{ </span> <span>console.log( "postcode request fail - an error occurred: (" + textStatus + ")." ); </span> <span>//try again... </span> <span>}); </span> <span>} </span> <span>}</span>
*Suburb: *Postcode: State:
<span>{ </span> <span>"suburbs": { </span> <span>"suburb1": { </span> <span>"postcode": "2016", </span> <span>"state": "NSW" </span> <span>}, </span> <span>"suburb2": { </span> <span>"postcode": "4016", </span> <span>"state": "QLD" </span> <span>}, </span> <span>"suburb3": { </span> <span>"postcode": "3016", </span> <span>"state": "CA" </span> <span>}, </span> <span>"suburb4": { </span> <span>"postcode": "8016", </span> <span>"state": "WA" </span> <span>}, </span> <span>"suburb5": { </span> <span>"postcode": "6016", </span> <span>"state": "SA" </span> <span>} </span> <span>} </span><span>}</span>
<span>var e = jQuery.<span>Event</span>("keydown"); </span>e<span>.which = 40; </span>e<span>.altKey = true; </span><span>$("input").trigger(e);</span>
Pour charger dynamiquement les options de données avec Ajax dans Firefox, vous devez utiliser la méthode jQuery Ajax. Tout d'abord, vous devez créer une demande AJAX à votre script côté serveur. Ce script doit renvoyer les données que vous souhaitez remplir dans le datalist. Une fois la demande AJAX réussie, vous pouvez utiliser les données de réponse pour remplir le datalist. Voici un exemple simple:
$. AJAX ({
URL: 'Votre serveur-script',
Success: Function (data) {
var datalist = $ (' # your-datalist-id ');
datalist.empty ();
$ .each (data, fonction (index, valeur) {
datalist.append ('
jQuery UI fournit un widget de saisie semi-automatique que vous pouvez utiliser avec Ajax et JSON. Vous devez initialiser le widget d'observance automatique sur votre champ de saisie et fournir une option source. L'option source doit être une fonction qui fait une demande AJAX et utilise les données de réponse pour remplir les suggestions de saisie semi-automatique. Voici un exemple:
$ ('# # your-int-id'). AutoChyPle't ({
source: function (request, réponse) {
$ .ajax ({
url: 'votre serveur-script-script',
dataType: 'json',
data: {
Term: request.term
},
Succès: fonction (data) {
réponse (données);
}
});
}
});
Dans ce code, remplacez «votre entrée-id» avec l'ID de votre champ de saisie et «votre serveur-script» avec l'URL de votre script côté serveur.
Vous pouvez utiliser le datalist jQuery Ajax et HTML5 pour créer une fonctionnalité de saisie automatique. Tout d'abord, vous devez créer un champ de saisie et un datalist dans votre HTML. Ensuite, vous devez utiliser jQuery Ajax pour récupérer les données que vous souhaitez utiliser pour les suggestions de saisie semi-automatique. Une fois la demande AJAX réussie, vous pouvez utiliser les données de réponse pour remplir le datalist. Voici un exemple:
jQuery Ajax fournit plusieurs méthodes pour gérer les erreurs. La méthode la plus courante est l'option de rappel «Erreur». Cette option est une fonction qui est appelée lorsque la demande AJAX échoue. La fonction reçoit trois arguments: l'objet JQXHR, une chaîne décrivant le type d'erreur et un objet d'exception facultatif si l'on s'est produit. Voici un exemple:
$. Ajax ({
URL: 'votre serveur-script',
Succès: fonction (données) {
// gérer la réponse réussie
},
Erreur: fonction (jqxhr, textstatus, errorthrown) {
console.error ('la demande ajax a échoué:' TextStatus);
}
});
Dans ce code, remplacez «votre serveur-script» par l'URL de votre script côté serveur.
Vous pouvez utiliser l'option «Data» dans la méthode jQuery Ajax pour envoyer des données au serveur. L’option «Données» doit être un objet dans lequel les noms de propriété sont les clés de données et les valeurs de la propriété sont les valeurs de données. Les données sont envoyées au serveur dans le corps de la demande HTTP. Voici un exemple:
$. AJAX ({
URL: 'votre serveur-script',
Méthode: 'Post',
data: {
key1: 'value1',
key2: 'value2'
},
Succès: fonction (réponse) {
// gérer la réponse réussie
} Nous et «valeur2» avec vos valeurs de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!