每行的Jquery AutoComplete数据

时间:2017-02-17 10:09:05

标签: javascript jquery

Hello在我的jquery中,我想在当前行的表单字段中填充数据。我将有多个具有相同类的字段,我的代码可以工作,但我面临的问题是,所有行的代码更改,但我只想更改当前行数据 这是我的小提琴 https://jsfiddle.net/1bfbtoxw/

这是我的jquery

$(".enginenum").autocomplete({
    source: "includes/modvehicleSale/search-engine.php",
    minLength: 1,
    select: function (event, ui) {
        var item = ui.item;
            if(item) {
                $('.txtchassis').val(item.ChassisNo);
                $('.txtdescription').val(item.BikeDescription);
                $('txtselling').val(item.SellingAmount);
            }
        }
})

3 个答案:

答案 0 :(得分:0)

您的jsfiddle设置不正确。

我将该类添加到您的其他输入并将js代码更改为:

const ac_settings = {
        source: "includes/modvehicleSale/search-engine.php",
        minLength: 1,
        select: function (event, ui) {
            var item = ui.item;
                if(item) {
                    $('.txtchassis').val(item.ChassisNo);
                                         $('.txtdescription').val(item.BikeDescription);
                    $('txtselling').val(item.SellingAmount);
                }
            }
    }

$.each($(".enginenum"), function() {
     $(this).autocomplete(ac_settings)
})
//$(".enginenum").autocomplete()

https://jsfiddle.net/1bfbtoxw/2/

答案 1 :(得分:0)

尝试选择最近的行,例如

var row = $(event.target).closest(".row");

然后将此行用作选择器中的容器

$('.txtchassis', row)

代码将是:

    $(".enginenum").autocomplete({
        source: "includes/modvehicleSale/search-engine.php",
        minLength: 1,
        select: function (event, ui) {
            var row = $(event.target).closest(".row");
            var item = ui.item;
                if(item) {
                    $('.txtchassis', row).val(item.ChassisNo);
                    $('.txtdescription', row).val(item.BikeDescription);
                    $('txtselling', row).val(item.SellingAmount);
                }
            }
    })

答案 2 :(得分:0)

<强> A sample fiddle first

假设您有.row作为每个row的父级,您可以使用$(this).closest('.row')引用当前行并使用.find获取该行的相关元素。所以你的更改如下:

$(".enginenum").autocomplete({
    source: "includes/modvehicleSale/search-engine.php",
    minLength: 1,
    select: function (event, ui) {
        var item = ui.item;
            if(item) {
                $(this).closest('.row').find('.txtchassis').val(item.ChassisNo);
                $(this).closest('.row').find('.txtdescription').val(item.BikeDescription);
                $(this).closest('.row').find('.txtselling').val(item.SellingAmount);
            }
        }
});

请注意,id必须是唯一符合标准的。