Sto cercando di ottenere il completamento automatico di jQueryUI sugli elementi di input del modulo creati dinamicamente, ma non funziona. Ho provato a usare keyup.autocomplete e keydown.autocomplete come bind events in $ .live(), ma è vincolante per i nuovi elementi - solo quelli già presenti nella pagina.Come posso aggiungere jquery ui autocomplete a un elemento creato dinamicamente?
Prova il codice here (prova a digitare "ava" nel primo input, quindi fai clic su "Aggiungi un input" e digita lo stesso nel nuovo input).
JavaScript:
$(function() {
$("input#addButton").click(function() {
$("input.searchInput:last").clone(true).appendTo($(this).closest("form"));
$("input.searchInput:last").val("");
})
$("input.searchInput").live("keydown.autocomplete", function() {
$(this).autocomplete({
source: [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
],
minLength: 2
});
})
});
HTML:
<form name="myForm" method="post">
<input id="addButton" name="addButton" type="button" value="Add an input" />
<input name="search" value="" class="searchInput" maxlength="20" />
</form>
Solo per curiosità, avete provato eseguendo il legame ogni volta che un controllo viene creato per l'oggetto specifico creato? Buon punto di partenza per la risoluzione dei problemi ... – Dutchie432
@ Dutchie432: sì, l'ho fatto - http://jsfiddle.net/6t74T/2/ - stesso risultato. –
@Eric: Il tuo violino (jsfiddle.net/6t74T/1) funziona per me in Chrome. Ottengo il completamento automatico anche sulla casella aggiunta. – Mrchief