繁体   English   中英

自动完成弹出窗口在克隆的元素上无法正常工作

[英]Auto Complete Popup not working properly on cloned elements

我无法正确解释它,所以我添加了图片,请对此提供帮助,请不要拒绝投票。

嗨,我在单击按钮时克隆了div,我也希望克隆元素上的自动完成框。 在第一个元素上工作正常,但在克隆的元素上,自动完成框(弹出)显示在第一个元素上,但应在新创建的文本框中显示

以下是html代码

<div class="repeatingSection">
<input id="Jobs[0].SampleType" name="Jobs[0].SampleType" type="text" class="form-control classSampleType" placeholder="Sample Name" required />
<a href="#" class="btn btn-warning buttonGray buttonRight addJob">Add Job</a>

以下是用于克隆的js代码

function resetAttributeNames(section) {
    var tags = section.find('input,button'), idx = section.index();
    tags.each(function () {
        var $this = $(this);
        $.each(attrs, function (i, attr) {
            var attr_val = $this.attr(attr);
            if (attr_val) {
                $this.attr(attr, attr_val.replace(/\[\d\]/,'['+(idx-5)+']'))
            }
        })
    })
}

$('.addJob').click(function (e) {
    e.preventDefault();
    var lastRepeatingGroup = $('.repeatingSection').last();
    var cloned = lastRepeatingGroup.clone(true)

    cloned.find("input").val("");

    cloned.insertAfter(lastRepeatingGroup);
    resetAttributeNames(cloned)
});

以下是自动完成的代码

$(".classSampleType").click(function () {
        var index = $(".classSampleType").index(this);

        $("#Jobs\\["+index+"\\]\\.SampleType").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: "/Lab/GetSampleType",
                    type: "POST",
                    dataType: "json",
                    data: { Prefix: request.term },
                    success: function (data) {
                        response(data);
                    }
                })
            },
            messages: {
                noResults: "", results: ""
            }
        });
    });

作为参考,我添加了图像参考图像

通过进行以下更改为我工作

var cloned = lastRepeatingGroup.clone(true,false)

$(document).on('click','.classSampleType',function () {
    var index = $(".classSampleType").index(this);

    $("#Jobs\\["+index+"\\]\\.SampleType").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/Lab/GetSampleType",
                type: "POST",
                dataType: "json",
                data: { Prefix: request.term },
                success: function (data) {
                    response(data);
                }
            })
        },
        messages: {
            noResults: "", results: ""
        }
    });
});

暂无
暂无

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

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