无法获得更新的textarea值

时间:2011-11-09 19:24:32

标签: php javascript mysql textarea

我遇到了问题:

我的页面上有一个textarea,如下所示:

<textarea id='redactor_content' name='redactor_content' style='width: 720px; height: 320px;'>$news[3]</textarea>

其中$news[3]是我从MySQL获得的php变量。 redactor_content是WYSIWYG编辑器,我在其中编辑$news[3]的内容。编辑内容后,我想将其传递给mysql,使用以下JavaScript更新表:

function update_news(n_id) {
    var title = $('#title').val();
    var news_body = $('#redactor_content').val();
    alert(news_body);
    $.post(
        "update.php",
        {n_id: n_id, title: title, body: news_body},
        "html"
    )};

JS中还有另外两个变量n_idtitle。两者都工作正常。但是当使用news_body变量弹出警报时,我会看到旧版本的textarea(最初位于$ news [3]变量中),而不是新版本的更新版本。

我被困了。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:2)

大多数wysiwyg编辑器在页面上创建一个新的单独部分(通常是iframe),它覆盖了他们正在替换的textarea。您需要告诉编辑器将“花哨”图形版本中的数据复制回原始表单字段,以便您的JS可以获得更新版本。或者弄清楚编辑器如何/在哪里存储叠加版本,以便你可以从那里抓取它。

答案 1 :(得分:0)

redactor_content可能存在一些客户端功能,允许您正确检索值。像$('#redactor_content')[0].getTextValue()或其他东西。

这不是真正的代码,只关注它是如何工作的一个例子。

答案 2 :(得分:0)

感谢帮助人员,我的问题的答案是:

需要替换此行:

var news_body = $('#redactor_content').val();

这一行:

var news_body = $('#redactor_content').elrte('val');