首頁 > web前端 > js教程 > jQuery ajax html5數據師自動完成示例

jQuery ajax html5數據師自動完成示例

Jennifer Aniston
發布: 2025-02-23 10:52:13
原創
420 人瀏覽過

jQuery ajax html5數據師自動完成示例

該代碼使用HTML5數據級標籤來設置文本字段的自動完成選項 。它使用AJAC請求抓住JSON文件中的數據(如果需要或本地在JS對像上可以持續存儲在瀏覽器中的數據)。然後,它使用郊區的選擇來自動填充郵政編碼的其他字段,並在郊區更改時聲明。除了Safari以外,幾乎所有瀏覽器中的工作都像零食一樣。 注意:HTML數據師仍然與所有瀏覽器不兼容。請參閱兼容性。對於回填插件,請使用此插件:jquery.relevantdropdowns.js - 它插入了一個帶有li的UL標籤,以替換DataList選項的選項。 jQuery ajax html5數據師自動完成示例

html5數據師標籤

登入後複製

完整的jQuery

該代碼通過JSON和AUTO根據用戶的自動完成選擇填充數據師。
<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>
登入後複製

完整的html

這就是您的HTML的樣子:

*Suburb:





*Postcode:

State:


登入後複製

完整的JSON

PHP文件返回JSON - 可以是.json或.php,並在需要時從數據庫中獲取數據。
<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>
登入後複製

html5觸發數據師

使用alt down箭頭模擬用戶操作。您需要使用jQuery來模擬多個觸發鍵盤。 key Code Alt = 18(也稱為AltKey的修飾符鍵) 鑰匙代碼向下箭頭= 40
<span>var e = jQuery.<span>Event</span>("keydown");
</span>e<span>.which = 40;
</span>e<span>.altKey = true;
</span><span>$("input").trigger(e);</span>
登入後複製

>關於jQuery Ajax和HTML5 Datalist AutoComplete

的常見問題(常見問題解答)

>如何在Firefox中使用AJAX動態加載數據庫選項?

>

>在Firefox中使用Ajax動態加載數據板選項,您需要使用jQuery ajax方法。首先,您需要為服務器端腳本創建AJAX請求。該腳本應返回您要在數據庫中填充的數據。 AJAX請求成功後,您可以使用響應數據來填充數據師。這是一個簡單的示例:

$。 ajax({{ success:function(data){ var datalist = $(' #your-datalist-id');
datalist. empty();
$。each(數據,函數(index,value) datalist.append('

>如何將jQuery Autocomplete與回調AJAX JSON?您需要在輸入字段上初始化自動完成的小部件並提供源選項。源選項應是發出AJAX請求並使用響應數據填充自動完成建議的函數。這是一個示例:

$('#your-input-id')。 autoComplete({{
source:function(request,wendesp){ $ .ajax({url: 'your-side-side-script',
> datatype:'json',
data:{
術語:request.term
},>成功:函數(data){
響應(data);
}
}); }
});

在此代碼中,替換'your-Input-id'使用您的輸入字段的ID和“您的服務器端”標記,並帶有服務器端腳本的URL。對於自動完成功能?

>您可以使用jQuery Ajax和HTML5 Datalist來創建自動完成功能。首先,您需要在HTML中創建一個輸入字段和數據師。然後,您需要使用jQuery Ajax來獲取要用於自動完成建議的數據。 AJAX請求成功後,您可以使用響應數據來填充數據師。以下是一個示例:


$。 -Server-side-script',

成功:function(data){ var datalist = $('#your-datalist-id') datalist.empty();

$。 each(data,function(index,value){
datalist.append('

},

錯誤:function(jqxhr,textStatus,error thrath){

> console.error('ajax請求失敗:' textStatus);

}
});
在此代碼中,用服務器端腳本的URL替換“您的服務器端scrips”。>

>如何使用jQuery ajax將數據發送到服務器?

>您可以在jQuery Ajax方法中使用“數據”選項將數據發送到服務器。 “數據”選項應該是屬性名稱是數據鍵,而屬性值是數據值的對象。數據將發送到HTTP請求正文中的服務器。以下是一個示例:

$。 ajax({
url:'your-server-side-script',
方法:'post',
data:{
key1:{
key1: 'value1',
key2:'value2'
},
成功:function(響應){
//處理成功響應
}
});

在此代碼中,用您的數據鍵替換服務器端腳本'key1'和'key2'的'your-side-scrips'和'value1'和您的數據值的“ value2”。

以上是jQuery ajax html5數據師自動完成示例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板