2011-11-09 237 views
2

我有一个问题:无法获得更新textarea的价值

我有我的网页上一个文本,看起来像这样:

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

$news[3]是一个PHP变量,我从MySQL获得。 redactor_content是一个所见即所得的编辑器,我编辑$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中的2个变量,是n_idtitle。两者都工作正常。但是当警报弹出news_body变量时,我会看到textarea的旧版本(最初在$ news [3]变量中),而不是新的更新版本。

我卡住了家伙。任何帮助表示赞赏!

回答

2

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

+0

感谢,会尝试寻找这办法。顺便说一句,如果这能帮助,我使用的编辑器是ElRTE – mrkrabs

+0

感谢您的帮助,回答我的问题是: 需要更换这行: VAR news_body = $(“#redactor_content”)VAL( ); 使用此行: var news_body = $('#redactor_content')。elrte('val'); 正如Marc B所说,EltrE编辑器有一些叠加。 – mrkrabs

0

redactor_content可能有一些客户端功能允许您正确检索值。像$('#redactor_content')[0].getTextValue()之类的东西。

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

0

感谢您的帮助球员,回答我的问题是:这条线

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

需要更换此行

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