两个Javascript函数,第二个只能工作

时间:2013-03-22 08:52:44

标签: javascript jquery

我有两个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'
    });
});

1 个答案:

答案 0 :(得分:1)

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

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

Demo。尝试更改该textarea中的内容,然后使用两种不同的方法来检索更改的内容。只有后者才有效。