Wie man element-Id aus dynamisch generierten Formular-Elemente mit jquery?
Versuchen, das Konzept, ich mache einen sehr einfachen test.
Ich habe ein Formular mit einigen text-Eingabe zeigt sich von Anfang an.
Wenn ich auf ein Feld klicken, ich will seine Id, und fügen Sie einen Wert in die text eingegeben werden.
$(document).ready(function() {
$('input').focus(function() {
var currentId = $(this).attr('id');
$("#"+currentId).val('blah');
});
});
Dies funktioniert gut, mit der ersten Felder, aber es funktioniert mit den Feldern Hinzugefügt, die mit ajax-Aufrufe.
Der trick ist, die Benutzer sind in der Lage, klicken Sie auf jedes Feld und ich weiß nicht, was bis Sie mit einem klicken.
Meine Ids sieht wie folgt aus:
experience0-CompanyName //(original one)
experience[n]-CompanyName
([n] Teil wird auch verwendet, um die Reihenfolge der Felder in der form, wie die Elemente gruppiert sind, die durch Erfahrung, Bildung, Fähigkeiten etc...
wie kann ich das erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine einfache änderung:
.focus
bindet nur an die Elemente, die es an der Zeit es nennt..live()
bindet eine Funktion an ein event für alle vorhandenen Elemente, und alle, die Hinzugefügt werden, um das DOM später.Den vorherigen Antworten sind nicht mehr zeitgemäß. Sie setzen auf jQuery.Leben, das ist jetzt veraltet. In jQuery 1.11, ein Aufruf von jQuery.live erzeugt einen Fehler. Die aktuell bevorzugte Lösung ist die Verwendung von jQuery.auf . Die Umsetzung des jQuery.live-code, oben, wäre wie folgt. Der zweite parameter, die derzeit zur "": input" kann ersetzt werden durch einen Selektor, der in Einklang mit Ihren Bedürfnissen.
Kann es einfacher (es müssen keine id bekommen und Suche nach es):
Ich glauben, Sie sind mit
$("<someid>").focus(<function>)
. Dies funktioniert auf Dokument bereits geladen ist und nicht auf neue tags Hinzugefügt.Try using $("<someid>").live("focus", <function>);
Außerdem haben Sie einen Blick auf jquery-website. Sie haben ganz schön Dokumentation mit Beispielen. Für live-check this out http://api.jquery.com/live/