2010-11-05 3 views
7

accettare la mia scusa per il mio basso livello di inglesecontenuti in textareas impostato per utilizzare nicEdit non aggiornare per riflettere utente cambia

io uso per caricare una pagina con jQuery e uso nicEdit in quella pagina e inserisco dati ad un altro pagina con jQuery. Ma invia semplicemente un valore vuoto invece di quello che l'utente ha scritto nell'editor (se definisco un valore predefinito per la mia area di testo, invia semplicemente il valore predefinito non il testo scritto dall'utente). Qual è il problema e qual è la soluzione?

Grazie.


UPDATE Dopo aver letto this related article ed è commenti alla fine e la lettura di altri articoli ho trovato deve utilizzare in questo modo prima submiting forma:

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

Per questo io uso jQuery per selezionare qualsiasi textarea e chiama la funzione jquery .each(). Ad esempio:

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

Questo funziona bene per textarea creato in precedenza. Ma ho alcune textarea create dinamicamente tramite jQuery che la funzione findEditor() sopra non ha trovato quelle e non chiama lo saveContent() per quelle.

Per questo problema cosa offrite ??????

TNX

+0

aggiungi il tuo codice –

risposta

1

La risposta di base per gli elementi creati dinamicamente è quello di utilizzare qualcosa come $('selector').on('click', function(...)) o whathaveyou di legarsi in modo dinamico al all'attivazione azione, avere quel function corpo trovato nessun rilevanti .nice-wrapper textarea s (tramite selettori sensibile) come un oggetto jQuery $textareas, e prima di eseguire il submit

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

che consente di utilizzare alcuni dei metodi di convenienza come .serializeArray. Ovviamente, ci sono molti modi diversi per risolvere questo problema - ad esempio, forse si desidera associare l'evento di invio del modulo invece di fare clic su un pulsante - ma penserei che molte (la maggior parte?) Delle soluzioni sensibili cadano nella stessa categoria generale.

3

Che dire di salvare tutte le istanze in questo modo prima di inviare il modulo

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