【问题标题】:autocomplete ajax - update input with a specified value自动完成 ajax - 使用指定值更新输入
【发布时间】:2014-06-20 16:09:48
【问题描述】:

我的自动完成脚本有问题:

如果我搜索“siegg”,我会返回此信息

但是,我没有在文本框中写出完整的搜索结果

所以,这就是我想要的:

这是我的 javascript 代码:

$("#place_RegisterUser").autocomplete({
    source: function( request, response ) {
        $.ajax({
            url: 'webservice.php?method=GetAllAddressData&filter=' + $("#place_RegisterUser").val(),
            dataType: "json",
            data: {term: request.term},
            success: function(data) {
                response($.map(data.Values, function(item) {
                    return {
                        label: item.PlaceZIP + ", " + item.PlaceName + ", Bezirk " + item.CountyName,
                        PlaceZIP: item.PlaceZIP,
                        CountyName: item.CountyName,
                        FederalStateName: item.FederalStateName,
                        CountryName: item.CountryName
                        };
                }));
            }
        });
    },
    minLength: 2,
    select: function(event, ui) {
        $('#zipcode_RegisterUser').val(ui.item.PlaceZIP);
        $('#county_RegisterUser').val(ui.item.CountyName);
        $('#federalstate_RegisterUser').val(ui.item.FederalStateName);
        $('#country_RegisterUser').val(ui.item.CountryName);
    }
});

【问题讨论】:

  • 你的 html 是什么?您的 javascript 必须正常工作。您不会将完整数据粘贴到字段中,而是将分割后的数据粘贴到指定字段中。

标签: ajax json autocomplete


【解决方案1】:

在你的选择回调中添加

$("#place_RegisterUser").val(ui.item.PlaceName);
return false;

http://api.jqueryui.com/autocomplete/#event-select select 事件的默认操作是将文本字段的值替换为所选项目的值。

从此事件返回 false 可防止更新值。所以你需要自己设置。

【讨论】:

    猜你喜欢
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2023-04-01
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多