1

我有两个 javascript 函数,第一个从文本区域保存草稿,第二个是文本编辑器插件。如果我将它们一起加载,则只会显示第二个,但它们单独工作正常 - 不幸的是,不能一起使用。我将把这两个函数放在下面,如果你看到这两个函数的修复,请告诉我;如有必要,我可以显示外部插件 JS,但它相当大。预先感谢您的协助!

要补充的是,两者都使用相同的 jQuery 版本。

#1:

$(function() {
    setInterval(function (){
        var body = $("#body").val(); 
        var title = $("#title").val();
        var forum = $("#forum_id").val();

        DATA = "mid=" + <?php echo $mid ?> + "&body=" + body + "&title=" + title + "&forum=" + forum + "&draft_id=" + <?php echo $draft_id ?>;

        if (body.length > 0) 
        { 
            $.ajax({
                type: "POST",
                url: "inc/save_draft.php",
                data: DATA,
                cache: false,
                success: function(){
                    $("#timestamp").show().html("Saved as a draft!");
                }
            });
        }
        setTimeout(function(){
            $("#timestamp").hide();
        }, 500);// 15 seconds
    }, 1000);// 1 minute
});


#2:

$(function() {
    $("textarea").sceditor({
        plugins: 'bbcode'
    });
});
4

1 回答 1

1

这里的问题是您的sceditor插件将 textarea 转换为可编辑的 iframe,这$("#body").val()将产生一个空字符串,因为在表单提交之前编辑器不会填充它的值。

您需要更新您的第一个插件,以便它不获取$('#body').val(),而是$('#body').sceditor('instance').val()

演示。尝试更改该文本区域中的内容,然后使用两种不同的方法来检索更改的内容。只有后者会起作用。

于 2013-03-22T09:07:35.090 回答