Javascript JQuery发送空值

Javascript JQuery发送空值,javascript,jquery,ajax,Javascript,Jquery,Ajax,我不明白。。。我检查了我的代码一百次,我没有得到错误 实际上,我正在使用JQuery和AJAX进行一些测试,并制作了一个简单的表单,其中包含一个要提交的文本区域。如果没有AJAX,它工作得很好,但是如果有,它总是发送一个空的我的textarea值 Javascript代码: $(document).ready(function(e) { $("#formPost input").attr("disabled", false); $("#formPost inp

我不明白。。。我检查了我的代码一百次,我没有得到错误

实际上,我正在使用JQuery和AJAX进行一些测试,并制作了一个简单的表单,其中包含一个要提交的文本区域。如果没有AJAX,它工作得很好,但是如果有,它总是发送一个空的我的textarea值

Javascript代码:

 $(document).ready(function(e) {
        $("#formPost input").attr("disabled", false);

        $("#formPost input:submit").click(function() {
            $.ajax({
                type: 'POST',
                url: 'post.php',
                dataType: 'json',
                data: $('#formPost').serialize(),
                beforeSend: function(XMLHttpRequest) {
                    $("#formPost input").attr("disabled", true);
                    $("#formPost .ajaxloader").show();
                },
                success: function(data) {
                    var message = $("#flashMessage");

                    message.text(data.msg);
                    if(data.error) {
                        message.addClass("fail");
                    }
                    else {
                        message.addClass("success");
                    }
                    message.show();
                },
                error : function(XMLHttpRequest, textStatus, errorThrown) {
                    $('#formPost .ajaxloader').hide();
                    $('#flashMessage').removeClass().
                        addClass('fail').text('There was an error.').show();
                },
                complete: function(XMLHttpRequest) {
                    $("#formPost input").attr("disabled", false);
                    $("#formPost .ajaxloader").hide();
                }
            });
            return false;
        });
    });
HTML:

<div>
      <h1>Add new post</h1>
      <div id="flashMessage"></div>
      <form id="formPost" method="post" action="post.php">
        <textarea id="post" name="post"></textarea>
        <input type="submit" value="Save" />
        <div class="ajaxloader">
          <img src="ajax-loader.gif" />
        </div>
        <div class="clear"></div>
      </form>
    </div>

增加新职位
我使用Firebug,在“网络”->“XHR”->“帖子”和“源代码”下查看,他显示Post=


那么,值到哪里去了呢?

您正在禁用
beforeSend
方法中的表单元素,但是JQuery的
serialize
将忽略这些禁用的元素。尝试先删除该项以进行测试。有一些方法可以绕过它。

您正在禁用
beforeSend
方法中的表单元素,但是JQuery的
serialize
将忽略这些禁用的元素。尝试先删除该项以进行测试。有一些方法可以解决这个问题。

您的问题与CKEditor有关(正如您在评论中所说的),因为WYSIWYG编辑器会替换
文本区域的外观,并在表单提交时更新值。因此,在使用Ajax时,必须使用CKEditor的内置函数手动更新
textarea
的值。我无法具体帮助您使用CKEditor,但此线程可能会有所帮助:。

您的问题与CKEditor有关(如您在评论中所说),因为WYSIWYG编辑器会替换
textarea
的外观,并在表单提交时更新值。因此,在使用Ajax时,必须使用CKEditor的内置函数手动更新
textarea
的值。我无法具体帮助您使用CKEditor,但此线程可能会有所帮助:。

它适合我。您是否使用富文本编辑器替换textarea?是的,我使用lol:/这是一个坏迹象吗?编辑:好的,我删除了CKEditor(富文本编辑器),它工作正常。但是为什么RTE不起作用呢?它对我起作用了。您是否使用富文本编辑器替换textarea?是的,我使用lol:/这是一个坏迹象吗?编辑:好的,我删除了CKEditor(富文本编辑器),它工作正常。但是为什么RTE不起作用呢?我想他只是禁用了
input
,而不是
textarea
。我想他只是禁用了
input
,而不是
textarea