【问题标题】:Jquery UI autocomplete method not filterring data?Jquery UI自动完成方法不过滤数据?
【发布时间】:2019-03-14 12:35:07
【问题描述】:

Jquery 自动完成功能没有从 JSON 值中过滤,请查看这里演示。

https://codepen.io/jprakashrpm/pen/bZLBow

JSON 电子邮件字段不过滤它仅过滤标签值。

$(function() {

    var projects = [
        {
            label: "jayaprakash",
            email: "jayaprakash.janarthanan@gmail.com",
        },
        {
            label: "karthi",
            email: "karthi.murugan@yahoo.co.in",
        },
        {
            label: "deepak",
            email: "deepak.chandra@outlook.co.in",
        }
    ];

    $( "#name" ).autocomplete({
        source: projects,
        focus: function( event, ui ) {
            $( "#name" ).val( ui.item.label );
            return false;
        },
        select: function( event, ui ) {
            $( "#email" ).val( ui.item.email );
            return false;
        }
    })


    $( "#email" ).autocomplete({
        source: projects,
        focus: function( event, ui ) {
            $( "#email" ).val( ui.item.email );
            return false;
        },
        select: function( event, ui ) {
            $( "#name" ).val( ui.item.label );
            return false;
        }
    })



});

【问题讨论】:

标签: jquery html css jquery-ui


【解决方案1】:

请使用以下代码

$(function () {

var projects = [
    {
        label: "jayaprakash",
        email: "jayaprakash.janarthanan@gmail.com",
    },
    {
        label: "karthi",
        email: "karthi.murugan@yahoo.co.in",
    },
    {
        label: "deepak",
        email: "deepak.chandra@outlook.co.in",
    }
];

$("#name").autocomplete({
    source: projects,
    focus: function (event, ui) {
        $("#name").val(ui.item.label);
        return false;
    },
    select: function (event, ui) {
        alert(1);
        console.log(ui.item);
        $("#email").val(ui.item.email);
        return false;
    },
    search: function (oEvent, oUi) {
        // get current input value
        var sValue = $(oEvent.target).val();
        let label = [];
        let data = projects.map((value, number) => {
            if (value.label.includes(sValue)) {
                label.push(value.label)
            }
        })
        $(this).autocomplete('option', 'source', label);
    }

})


$("#email").autocomplete({
    source: projects,
    focus: function (event, ui) {
        $("#email").val(ui.item.email);
        return false;
    },
    select: function (event, ui) {
        $("#name").val(ui.item.label);
        return false;
    },
    search: function (oEvent, oUi) {
        var sValue = $(oEvent.target).val();
        let email = [];
        let data = projects.map((value, number) => {
            if (value.email.includes(sValue)) {
                email.push(value.email)
            }
        })
        $(this).autocomplete('option', 'source', email);
    }

})



});

【讨论】:

  • 请为您的回答提供一些解释。简洁是可以接受的,但更全面的解释更好。 how-to-answer-guide
猜你喜欢
  • 2012-02-09
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
  • 2023-03-13
  • 2011-02-21
  • 1970-01-01
相关资源
最近更新 更多