2010-12-30 16 views
1

Ich habe ein Formular, das an anderer Stelle im DOM angefügt werden muss, und wenn das auftritt, werden alle Formulareingaben auf ihre ursprünglichen Werte zurückgesetzt. Gibt es eine Möglichkeit, die Formulareingabewerte beizubehalten, wenn das Formularelement entfernt und erneut angefügt wird? Ich benutze jQuery und die append() -Funktion.Wie verhindere ich, dass Formulareingabedaten zurückgesetzt werden, wenn ich das Formularelement entferne und erneut anhefte?

+0

Haben Sie sich '.clone()' angesehen? Ich glaube, dass die '.clone()' Methode mit dem 'withDataAndEvents' Argument als' true' das Formular, die Ereignisse und die Daten einschließlich der Formularwerte kopiert. – Dan

+0

clone (true) scheint den aktuellen Eingabewert nicht zu kopieren - er kopiert Ereignisse und Daten, die mit der Funktion data() eingegeben wurden. – Tom

Antwort

1

Das ist das, was für mich gearbeitet:

Bevor das Formularelement geklont wird mit .clone (true):

$('#MyForm :input').each(function() { 
    $(this).data('val',$(this).val()); 
});

Nach dem geklonten Form Element() anhängen 'd:

$('#MySameFormSomewhereElseInTheDOM :input').each(function() { 
    $(this).val($(this).data('val')); 
});
Verwandte Themen