1

私は 2 つの JavaScript 関数を持っています。1 つ目はテキスト領域からドラフトを保存し、2 つ目はテキスト エディター プラグインです。両方を一緒にロードすると、2 番目のものだけが表示されますが、個別には正常に動作します。残念ながら、一緒にではありません。以下に 2 つの関数を配置します。これら 2 つの修正が見られた場合はお知らせください。必要に応じて外部プラグイン 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プラグインがテキストエリアを編集可能な iframe に変換し、$("#body").val()フォームが送信されるまでエディターによって値が入力されないため、空の文字列が生成されることです。

$('#body').val()最初のプラグインを更新して、フェッチしないようにする必要があります$('#body').sceditor('instance').val()

デモ。そのテキストエリアのコンテンツを変更してから、変更されたコンテンツを取得する 2 つの異なる方法を使用してみてください。後者のみが機能します。

于 2013-03-22T09:07:35.090 に答える