【问题标题】:Multiple instances of TinyMCE in different forms with same name (jQuery)具有相同名称的不同形式的 TinyMCE 的多个实例(jQuery)
【发布时间】:2009-07-27 06:09:14
【问题描述】:

我正在尝试实现一个自动保存功能,该功能可以在具有 TinyMCE 的 textareas 的同名页面上提交多个不同的表单。

我的代码:

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[name="answer"]', this).val() 不会改变它的值。澄清一下,如果我有两种形式,它会返回其中一种的更新值,反映我对 textarea 所做的任何更改,并返回另一种的原始值(即,如果我对其中一个 textarea 进行任何更改,那么调用 val() 不会更新这些更改)。

这是 TinyMCE 问题吗?还是有必要换一种方式?

谢谢。

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

【问题讨论】:

    标签: php javascript jquery html tinymce


    【解决方案1】:

    拥有两个具有相同名称的表单可能不是一个好主意。为每个表单添加唯一标识符:

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

    对触发此事件的事件进行编码以传递它所在的表单:

    function autoSaveEditForms($formid)
    

    【讨论】:

    • 嗨,我尝试为表单和所有元素提供唯一 ID 和唯一名称,但无济于事。还有其他想法吗?我在这个小溪上..我想这是一个 tinyMCE 问题。
    • 这应该允许您访问不同的表单 document.myform1... document.myform2... 在 firefox (CTL + Shift + J) 中尝试 javascript 调试器并查看错误消息。
    【解决方案2】:

    好的,知道了。 事实证明,您无法以通常的 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多