2012-11-20 40 views
0

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

我的代码

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

      } 

     }); 
    }); 
+1

在元素创建后应用'autocomplete'。 –

+0

在文本框被动态添加到DOM之后,您是否重新调用此代码? – Curt

+0

@Curt不,我不会重新打电话 –

回答

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); 
+0

我有你的观点让我试试这个 –

+0

是的完成..谢谢 –

0

首先是给基本元素相同的类而不是ID不是添加动态控制后,你可以做到这一点

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

      } 

     }); 
    });