Jquery自动完成功能不适用于飞行元素?

时间:2012-11-20 09:49:54

标签: jquery asp.net-mvc-3 autocomplete

我正在使用Jquery自动完成动态文本框。这工作正常但不能在飞行元素上工作。有什么建议吗?

我的代码

   $('input#ISBN').each(function () {
        $(this).autocomplete({
            source: '/Cataloging/Bib/GetISBN',
            minLength: 1,
            maxRows: 5,
            select: function (event, ui) {

            }

        });
    });

2 个答案:

答案 0 :(得分:0)

在将元素添加到DOM后,您需要回想一下代码

当你使用ID选择器时,我猜你只是将它用于一个元素,因此不需要循环。如果这是针对多个元素的,请将您的ID更改为类,并将选择器更改为:

$('input.ISBN')

您的代码应该是这样的:

function autoComp(element){
  element.autocomplete({
            source: '/Cataloging/Bib/GetISBN',
            minLength: 1,
            maxRows: 5,
            select: function (event, ui) {

            }

  });
}

$(function(){
    $('input#ISBN').each(function () {
       autoComp($(this));
    });
});

然后,无论您是否动态添加元素:

//Element added here
//e.g:
$(".foobar").append(newElement);

autoComp(newElement);

答案 1 :(得分:0)

首先给ur元素提供相同的类而不是id,而不是添加动态控件后你可以这样做

$('input.ISBN').not('.ui-autocomplete-input').each(function () {
        $(this).autocomplete({
            source: '/Cataloging/Bib/GetISBN',
            minLength: 1,
            maxRows: 5,
            select: function (event, ui) {

            }

        });
    });