2009-07-27 7 views
1

J'essaie d'implémenter une fonction de sauvegarde automatique qui soumet plusieurs formulaires différents sur une page portant le même nom avec des zones de texte TinyMCE'd.Plusieurs instances de TinyMCE sous différentes formes avec le même nom (jQuery)

Mon code:

function autoSaveEditForms() { 
    $("#auto_save_notify").html("Saving..."); 
    $("#auto_save_notify").show(); 
$("form[name=editForm]").each(function() { 

    if($('input[name="question"]', this).val() == "" || $('textarea[name="answer"]', this).val() == "") 
     return; 

    $.post("<?php echo $CONFIG->wwwroot; ?>action/faq/edit?autosave=true", $(this).serialize(), function(data) { 

      $("#auto_save_notify").fadeOut(5000); 
     }); 
}); 

}

Le problème est que $ ('textarea [name = "réponse"]', ce) .val() ne change pas sa valeur si je deux formes sur la page. Pour clarifier, si j'ai deux formes il retourne la valeur mise à jour pour l'un d'eux, reflétant toutes les modifications que je fais à la zone de texte, et il renvoie la valeur originale de l'autre (ie si je fais des changements à l'une des textareas appeler val() ne met pas à jour ces changements).

Est-ce un problème TinyMCE? Ou est-il nécessaire de le faire d'une autre manière?

Merci.

Mise à jour: Cela fonctionne très bien si TinyMCE n'est pas utilisé dans les zones de texte.

Répondre

0

Ok got it. Il s'avère que vous ne pouvez pas accéder aux données de la manière habituelle. Initialiser TinyMCE de cette façon:

tinyMCE.init({ 
    mode : "none", 
    theme : "advanced" 
}); 

/* call this function in ajax return text */ 
function makeTinyMCE(faqid) { 
    tinyMCE.execCommand('mceAddControl', false, 'answer'+faqid); 

} 

attraper ensuite le texte de cette manière:

tinyMCE.editors['answer'+faqid].getContent() 
1

Ce n'est probablement pas une bonne idée d'avoir deux formes avec le même nom. Ajouter un identifiant unique à chaque forme:

<form name="myform1"> 
</form> 

<form name="myform2"> 
</form> 

code l'événement qui déclenche ce pour passer le formid il vit dans:

function autoSaveEditForms($formid) 
+0

Salut, j'ai essayé de donner les formes et tous là des éléments ids uniques et des noms uniques sans succès. d'autres idées? Je suis en haut de la crique sur celui-ci .. Je suppose que c'est un petit problème de MCE. –

+0

Cela devrait vous permettre d'accéder aux différents formulaires document.myform1 ... document.myform2 ... Essayez le débogueur javascript dans firefox (CTL + Shift + J) et regardez le message d'erreur. –

Questions connexes