2009-07-27 18 views
1

TinyMCEのテキストエリアで同じ名前のページにいくつかの異なるフォームを送信するオートセーブ機能を実装しようとしています。同じ名前のさまざまなフォームの複数の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); 
     }); 
}); 

は}

の問題は、$( 'テキストエリア[名= "答え"]'、この).val()私が持っている場合は、その値を変更しません。ページ上に2つのフォームがあります。明確にするために、私は2つのフォームを持っていれば、テキストエリアに加えた変更を反映して、それらの1つの更新された値を返し、もう1つのオリジナルの値を返します(つまり、 val()を呼び出してもこれらの変更は更新されません)。

これはTinyMCEの問題ですか?それとも別の方法で行う必要がありますか?

ありがとうございました。

更新:TinyMCEがテキストエリアで使用されていないと正常に動作します。

答えて

0

[OK]をはそれを得ました。 通常の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

おそらく同じ名前の2つのフォームを持つのは良い考えではありません。各フォームに一意の識別子を追加します。

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

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

コード、それはに住んでいるフォームIDを渡すために、これをトリガするイベント:

function autoSaveEditForms($formid) 
+0

こんにちは、私は無駄にフォームやそこ要素固有のIDと一意の名前のすべてを与えてみました。他のアイデア?私はこの1つの小川の上にいます。私はそれが小さなMCEの問題だと思います。 –

+0

これは、異なるフォームにアクセスできるようにする必要があります document.myform1 ... document.myform2 ... firefox(CTL + Shift + J)でjavascriptデバッガを試して、エラーメッセージを見てください。 –

関連する問題