2010-11-05 21 views
7

accepter mes excuses à cause de mon faible niveau d'anglaiscontenu dans textareas configuré pour utiliser NicEdit pas la mise à jour pour refléter l'utilisateur change

J'utilise pour charger une page avec jQuery et j'utiliser NicEdit dans cette page et je poste données à un autre page avec jQuery. Mais il envoie juste une valeur vide au lieu de ce que l'utilisateur a écrit dans l'éditeur (si je définis une valeur par défaut pour ma zone de texte, il n'envoie que la valeur par défaut et non le texte écrit par l'utilisateur). Quel est le problème et quelle est la solution?

Merci.


MISE À JOUR Après avoir lu this related article et il est des commentaires à la fin et la lecture d'autres articles que j'ai trouvé doivent utiliser cette façon avant forme submiting:

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

Pour cela, j'utilise jquery pour sélectionner une zone de texte et appelez le .each() fonction jquery. Par exemple:

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

Ce travail est correct pour les zones de texte créées au préalable. Mais j'ai un textarea qui a créé dynamiquement via jQuery que la fonction findEditor() ci-dessus n'a pas trouvé ceux-ci et n'appelle pas saveContent() pour ceux-ci.

Pour ce problème ce que vous proposez ??????

TNX

+0

veuillez ajouter votre code –

Répondre

1

La réponse de base pour les éléments créés dynamiquement est d'utiliser quelque chose comme $('selector').on('click', function(...)) ou whathaveyou pour lier dynamiquement au déclenchement action, que le corps function trouve tout pertinent .nice-wrapper textarea s (via des sélecteurs sensibles) en tant qu'objet jquery $textareas, et avant l'exécution de la soumission

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

qui vous permettra ensuite d'utiliser certaines des méthodes pratiques telles que .serializeArray. De toute évidence, il existe de nombreuses façons de résoudre ce problème - par exemple, vous voulez peut-être lier l'événement submit du formulaire au lieu de cliquer sur un bouton - mais je pense que beaucoup (la plupart?) Des solutions sensibles tombent dans la même catégorie générale.

3

Qu'en est-il sauver tous les cas comme celui-ci avant de soumettre le formulaire

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