Ich versuche, eine Jquery-Funktion zu schreiben, die angegebene Felder aus dem Element über dem aktuellen in übereinstimmende Felder des aktuellen Elements kopiert. Insbesondere habe ich einen asp.net Repeater, der Tabellen mit ein paar Feldern ausspuckt und ich möchte eine "Wie oben" Funktion. Ich bin aber immer noch neu in Jquery und ich habe Probleme damit. Hier ist ein paar psudo-Code für das, was ich gerade versuche zu tun, fühle mich frei, eine bessere Methode vorzuschlagen, wenn du es weißt, oder einfach das Problem zu beheben.Verwenden von Jquery zum Kopieren der Werte mehrerer Felder
function CopyPrevious(sender, rowId) {
var current = $(sender).closest('#wrappingDiv').find('.containingTable').eq(rowId);
var previous = $(sender).closest('#wrappingDiv').find('.containingTable').eq(rowId - 1);
$(current).find('.fieldA').val($(previous).find('.fieldA').val());
}
wrappingDiv ist nur ein div ich um den Tisch gelegt, so konnte ich es mit „Nähe“ finden und jede Tabelle hat die Klasse „containingTable“. Ich habe "fieldA", "fieldB" usw. als Klassennamen auf die Felder gesetzt, damit ich sie finden kann, um die Werte zu erhalten.
Das Problem, das ich habe, ist ein Javascript-Fehler in Zeile 4 der oben: aktualisiert die Zeile 4 pro Kommentare: $ Strom nicht
EDIT definiert ist. Es funktioniert jetzt. Vielen Dank.
Es sollte '$ (aktuell) .find ('FieldA. ') Val ($ (iV) .find (' FieldA.') Val()..),' –
Vielleicht eine Debug laufen auf der Code und fügen Sie eine Überwachung für den Wert von rowId und aktuell ein. Überprüfen Sie, ob der Wert von rowId auf einen Wert gesetzt wird, der die Anzahl der vom Ausdruck zurückgegebenen Elemente übersteigt. Und der obige Typ ist korrekt, weil Sie val() nicht mit = zuweisen können, müssen Sie den Wert übergeben, um zugewiesen zu werden. –