Home >Web Front-end >JS Tutorial >jQuery AJAX HTML5 Datalist Autocomplete Example
<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>
To dynamically load datalist options with AJAX in Firefox, you need to use the jQuery AJAX method. First, you need to create an AJAX request to your server-side script. This script should return the data you want to populate in the datalist. Once the AJAX request is successful, you can use the response data to populate the datalist. Here’s a simple example:
$.ajax({
url: 'your-server-side-script',
success: function(data) {
var dataList = $('#your-datalist-id');
dataList.empty();
$.each(data, function(index, value) {
dataList.append('
jQuery UI provides an autocomplete widget that you can use with AJAX and JSON. You need to initialize the autocomplete widget on your input field and provide a source option. The source option should be a function that makes an AJAX request and uses the response data to populate the autocomplete suggestions. Here’s an example:
$('#your-input-id').autocomplete({
source: function(request, response) {
$.ajax({
url: 'your-server-side-script',
dataType: 'json',
data: {
term: request.term
},
success: function(data) {
response(data);
}
});
}
});
In this code, replace ‘your-input-id’ with the ID of your input field and ‘your-server-side-script’ with the URL of your server-side script.
You can use jQuery AJAX and HTML5 datalist to create an autocomplete functionality. First, you need to create an input field and a datalist in your HTML. Then, you need to use jQuery AJAX to fetch the data you want to use for the autocomplete suggestions. Once the AJAX request is successful, you can use the response data to populate the datalist. Here’s an example:
$.ajax({
url: 'your-server-side-script',
success: function(data) {
var dataList = $('#your-datalist-id');
dataList.empty();
$.each(data, function(index, value) {
dataList.append('
jQuery AJAX provides several methods to handle errors. The most common method is the ‘error’ callback option. This option is a function that is called when the AJAX request fails. The function receives three arguments: the jqXHR object, a string describing the type of error, and an optional exception object if one occurred. Here’s an example:
$.ajax({
url: 'your-server-side-script',
success: function(data) {
// handle successful response
},
error: function(jqXHR, textStatus, errorThrown) {
console.error('AJAX request failed: ' textStatus);
}
});
In this code, replace ‘your-server-side-script’ with the URL of your server-side script.
You can use the ‘data’ option in the jQuery AJAX method to send data to the server. The ‘data’ option should be an object where the property names are the data keys and the property values are the data values. The data is sent to the server in the body of the HTTP request. Here’s an example:
$.ajax({
url: 'your-server-side-script',
method: 'POST',
data: {
key1: 'value1',
key2: 'value2'
},
success: function(response) {
// handle successful response
}
});
In this code, replace ‘your-server-side-script’ with the URL of your server-side script, ‘key1’ and ‘key2’ with your data keys, and ‘value1’ and ‘value2’ with your data values.
The above is the detailed content of jQuery AJAX HTML5 Datalist Autocomplete Example. For more information, please follow other related articles on the PHP Chinese website!