首页 >web前端 >js教程 >jQuery ajax html5数据师自动完成示例

jQuery ajax html5数据师自动完成示例

Jennifer Aniston
Jennifer Aniston原创
2025-02-23 10:52:13427浏览

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