2010-11-05 2 views
7

mein wegen meiner geringen Englisch EbeneInhalt in Textbereichen gesetzt nicEdit nicht zu verwenden, zu aktualisieren Benutzer, um Änderungen

Ich benutze Accept entschuldigt eine Seite mit jQuery zu laden und ich verwende nicEdit in dieser Seite und ich poste Daten zu einem anderen Seite mit jQuery. Aber es wird nur ein leerer Wert anstelle dessen gesendet, was der Benutzer im Editor geschrieben hat (wenn ich einen Standardwert für meinen Textbereich definiere, sende ich nur den Standardwert, nicht den vom Benutzer geschriebenen Text). Was ist das Problem und was ist die Lösung?

Danke.


UPDATE Nach der Lektüre this related article und Kommentare zu Ende und das Lesen anderer Artikel fand ich vor submiting Form auf diese Weise verwenden müssen:

nicEditors.findEditor('textarea_id').saveContent(); 

Dazu verwende ich jquery jede Textbereich auswählen und rufen Sie .each() jquery Funktion. Zum Beispiel:

$('textarea').each(function(){ 
    var IDOfThisTextArea = $(this).attr('id'); 
    nicEditors.findEditor(IDOfThisTextArea).saveContent() 
}); 

Dies funktioniert gut für Textarea, die zuvor erstellt wurde. Aber ich habe einige Textfelder, die dynamisch über jQuery erstellt, dass findEditor() Funktion über diese nicht gefunden und nicht saveContent() für diese aufrufen.

Für dieses Problem, was Sie anbieten ??????

tnx

+0

fügen Sie bitte Ihren Code hinzu –

Antwort

1

Die grundlegende Antwort für dynamisch erstellte Elemente ist so etwas wie $('selector').on('click', function(...)) zu verwenden oder whathaveyou dynamisch an die die Auslösung binden Aktion, haben Sie das function Körper finden Sie alle relevanten .nice-wrapper textarea s (über sinnvolle Selektoren) als ein jquery Objekt $textareas, und vor der Ausführung der Übermittlung

$textareas.each(function(){ 
    nicEditors.findEditor(this.id).saveContent(); 
}); 

, die Sie dann einige der Bequemlichkeit Methoden wie .serializeArray verwenden können. Offensichtlich gibt es viele verschiedene Möglichkeiten, dieses Problem zu lösen - zB möchten Sie vielleicht an das Submit-Ereignis des Formulars anstatt an einen Knopfdruck binden - aber ich würde denken, dass viele (die meisten?) Der vernünftigen Lösungen fallen in die gleiche allgemeine Kategorie.

3

Was alle Instanzen wie diese speichern, bevor Sie das Formular abschicken

$('input[type=submit]').bind('click', function() { 
    for(var i=0;i<nicEditors.nicInstances.length;i++){ 
     nicEditors.nicInstances[i].saveContent(); 
    } 
}); 
Verwandte Themen