如何通过AJAX使用TinyMCE传递textarea内容

时间:2014-08-20 21:14:04

标签: javascript php jquery ajax

我最近在使用TinyMCE Jquery-plugin提交表单时发现了一个问题。当尝试提交正常输入字段(如文本字段,选择框等)时,一切正常。但是,在textarea上使用TinyMCE无法正常工作;我必须提交两次才能保存。这个特殊问题有解决办法吗?

<script>
 $(function () {
     $('.message').removeClass('hidden');
 });
  $(function () {

    $('form').on('submit', function (e) {

      //save button so we can use later
      var my_button = $(this).find("button");

      //give button loading state
      my_button.button('loading');

      e.preventDefault();

      var note = $("#content").text();
      $.ajax({
        type: 'POST',
        dataType:'html',
        url: '/m/core/_processEditEntry.php',
        data: $('form').serialize(),
        success: function () {

          //reset state
          my_button.button('reset');

          $(".message").fadeIn(0);
          $(".message").delay(5000).fadeOut('slow');
        }
      });

    });

  });
</script>

HTML

<textarea id="cotent" name="content" style="width:100%"><?php echo $entry->content; ?></textarea>

1 个答案:

答案 0 :(得分:0)

回答我的问题。

我需要添加tinyMCE.triggerSave();

<script>
  $(function () {

    $('form').on('submit', function (e) {

      //save button so we can use later
      var my_button = $(this).find("button");

      //give button loading state
      my_button.button('loading');

      e.preventDefault();
      tinyMCE.triggerSave();
      var note = $("#content").text();
      $.ajax({
        type: 'POST',
        dataType:'html',
        url: '/m/core/_processEditEntry.php',
        data: $('form').serialize(),
        success: function () {

          //reset state
          my_button.button('reset');

          $(".message").fadeIn(0);
          $(".message").delay(5000).fadeOut('slow');
        }
      });

    });

  });
</script>