2012-11-20 147 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) { 

      } 

     }); 
    });