簡體   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