简体   繁体   English

jQuery的多列自动完成?

[英]Multi-column Autocomplete for jQuery?

Is there an AJAX autocomplete for jQuery that supports multiple columns? 是否有支持多列的jQuery的AJAX自动完成功能? I mean multiple columns like a database table, not just splitting a list up. 我的意思是多个列,如数据库表,而不仅仅是拆分列表。 It would search off the first column, but the rest would be visible in the dropdown. 它将搜索第一列,但其余部分将在下拉列表中显示。

Does such a thing exist? 这样的事情存在吗?

try this code searching for one column but displaying multiple columns 
$(function() {
    $(".tb").autocomplete
            ({
                source: function(request, response) {
                    $.ajax({
                        type: "POST",
                        url: "WebService_GetData.asmx/GetCmbPostaKod",
                        dataType: "json",
                        data: "{ 'filterKey': '" + request.term + "' }",
                        contentType: "application/json; charset=utf-8",
                        dataFilter: function(data) { return data; },
                        success: function(data) {
                            response($.map(data.d, function(item) {
                            return { value: item.PostaKodu, label: item.IlAdi + ' ' + item.IlceAdi + ' ' + item.SemtAdi + ' ' + item.PostaKodu }
                            }))
                        },
                        error: function(XMLHttpRequest, textStatus, errorThrown) {
                            alert(textStatus);
                        }
                    });
                },
                minLength: 2,
                multiple: true,
                matchContains: true,
                formatItem: formatItem,
                formatResult: formatResult
            });
        });

        function formatItem(row) {
            return row[0] + " (<strong>id: " + row[1] + "</strong>)";
        }
        function formatResult(row) {
            return row[0].replace(/(<.+?>)/gi, ''); //removes html tags
        }

Yes. 是。 The common auto-complete plugin does that - look at the "Multiple Birds (remote)" box, it searches for the first column but displays more data: 常见的自动完成插件可以做到这一点 - 查看“多个鸟(远程)”框,它会搜索第一列但显示更多数据:

function formatItem(row) {
    return row[0] + " (<strong>id: " + row[1] + "</strong>)";
}
function formatResult(row) {
    return row[0].replace(/(<.+?>)/gi, ''); //removes html tags
}
$("#suggest4").autocomplete('search.php', {
    width: 300,
    multiple: true,
    matchContains: true,
    formatItem: formatItem,
    formatResult: formatResult
});

The result of search.php?q=b is: search.php?q = b的结果是:

Great <em>Bittern</em>|Botaurus stellaris
Little Bittern|Ixobrychus minutus
American Bittern|Botaurus lentiginosus

Hi use this below URL for one column but displaying multiple columns 您可以使用以下URL来显示一列,但显示多列

http://jsfiddle.net/alforno/g4stL/ http://jsfiddle.net/alforno/g4stL/

 $("#search").mcautocomplete({
 showHeader: true,

columns: [{
    name: 'City',
    width: '150px',
    valueField: 'name'
}, {
    name: 'State',
    width: '120px',
    valueField: 'adminName1'
}, {
    name: 'Country',
    width: '120px',
    valueField: 'countryName'  }],
    select: function (event, ui) {
    this.value = (ui.item ? ui.item.name : '');
    return false;
    },



minLength: 1,
source: function (request, response) {
    $.ajax({
        url: 'http://ws.geonames.org/searchJSON',
        dataType: 'jsonp',
        data: {
            featureClass: 'P',
            style: 'full',
            maxRows: 12,
            name_startsWith: request.term,
            username: "demo"
        },
        // The success event handler will display "No match found" if no items are returned.
        success: function (data) {
            var result;
            if (!data || data.length === 0 || !data.geonames || data.geonames.length === 0) {
                result = [{
                    label: 'No match found.'
                }];
            } else {
                result = data.geonames;
            }
            response(result);
        }
    });
} });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM