jQuery不会发布文本区域


jQuery wont post textarea?

我的代码有问题,它无法发送addnews.php 中的文本区域

当我使用<input type="text" name="content">时,它会发送,但使用<textarea>时它不会发送。

jQuery

$("#form").submit(function(event) {
    var form = this;
    event.preventDefault();
    var poster = $.post('addnews.php', $(this).serialize());
    poster.done(function(data) {
        $(".result").html(data);
        setTimeout(function() { $(".result").hide(); }, 2000);
        form.reset();
    });
});

PHP

if (isset($_POST['rubric'])) { 
    if (empty($_POST['rubric']) && empty($_POST['content'])) { 
        echo '<div class="alert alert-error alert-box">Du måste fylla i alla fält.</div>'; 
    }
    else { 
        $rubric = htmlentities($_POST['rubric']);
        $sql = "INSERT INTO ".PREFIX."news(`date`, `poster`)
        VALUES('".time()."', '".$userID."')"; 
        mysql_query($sql);
        $id = mysql_insert_id();
        $sql2 = "INSERT INTO ".PREFIX."news_contents(`newsID`,  `headline`, `content`)
        VALUES('".$id."', '".$rubric."', '".$_POST['content']."')";
        mysql_query($sql2);
        echo '<div class="alert alert-box alert-success">Klart, nyheten postad.</div>'; 
    }
}

HTML

echo '<div class="result"></div>';
echo '<form method="post" id="form" style="padding: 5px;">';
    echo '<input type="text" name="rubric" placeholder="Rubrik..." style="width: 778px;
                border-bottom: none;font-size: 10px;
                font-family:Verdana, Arial, Helvetica, sans-serif;"><br>';
    echo '<textarea name="content" class="myTextEditor" style="width: 800px; 
                height: 500px;"></textarea>'; 
    echo '<br><input type="submit" name="addnews" value="Spara" 
                class="btn btn-primary btn-small pull-right" style="font-weight:bold;">
                <a href="?p=news" class="btn btn-mini addbutton pull-right" 
                style="font-weight:bold;margin-right: 10px;">Tillbaka</a>';
echo '</form>';

在PHP文件中,我做了一个print_r($_POST),它发送内容,但即使我写了一些东西,它也是空的。

我怀疑我知道发生了什么。

您的文本区域具有类myTextEditor。你是否碰巧有某种js富文本编辑器挂在该类上?

如果您这样做了,请注意,并不是所有的文本编辑器都直接修改变形的文本区域。有些(比如CKEditor)有一个特殊的方法,可以用新的文本更新文本区域。当您提交表单时,这个问题不会出现——只有当您尝试序列化它或通过JS操作它时才会出现。

如果是这种情况,请查看编辑器文档(或提供编辑器链接-"myTextEditor"作为一个搜索词非常模糊)。

更新:

由于您使用的是TinyMCE,您的问题的答案就在这里。

简而言之:

提交前调用tinyMCE.triggerSave();