2009-07-27 123 views
1

我试图实现一个自动保存功能,该功能在具有TinyMCE'd textareas的同一页面上提交几个不同的窗体。TinyMCE具有相同名称的不同形式的多个实例(jQuery)

我的代码:

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); 
     }); 
}); 

}

的问题是,$( 'textarea的[名称= “回答”]',这一点).VAL()如果我不改变它的值两种形式在页面上。为了澄清,如果我有两种形式,它返回其中一个的更新值,反映我对textarea所做的任何更改,并返回另一个的原始值(即,如果我对其中一个textareas进行了任何更改,调用val()不会更新这些更改)。

这是TinyMCE问题吗?还是有必要以另一种方式做到这一点?

谢谢。

更新:如果没有在textareas中使用TinyMCE,它可以正常工作。

回答

0

好了它。 原来,你不能以通常的jQuery方式访问数据。以这种方式初始化TinyMCE的:

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

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

} 

然后抓住这样的文字:

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

它可能不是一个好主意,有两个同名的形式。一个唯一的标识符添加到每个窗体:

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

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

代码触发此通过它生活在formid事件:

function autoSaveEditForms($formid) 
+0

您好,我试图赋予形式和所有的元素有唯一的ID和唯一的名称都无济于事。任何其他想法?我在这一个小河上..我想这是一个小小的MCE问题。 – 2009-07-28 04:03:20

相关问题