2009-07-27 134 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

相關問題