用jquery更新textarea

时间:2010-01-13 12:48:23

标签: jquery

尝试使用jquery从textarea获取当前数据,并将其替换为返回的服务器。到目前为止q值是正确的,而不是使用服务器返回的内容更新它,它只是将其替换为' '

q = $('textarea#id_message').val();
alert(q)
$("textarea#id_message").val(' ').load( '/process/url?html=' + q );

更新

我只是尝试将服务器数据传递给测试结果<div>,这确实有效,<textarea>没有。

$( '#results' ).html( '&nbsp;' ).load( '/process/url?html=' + q );

4 个答案:

答案 0 :(得分:1)

这是因为当您在某个元素上使用.load()时,您稍后会在同一元素.html()上调用to put the response in there (jQuery core source code here),但这对输入无效,您需要{ {3}}。为此,您可以使用.val()进行回调,如下所示:

var val = $('#id_message').val();
$.get('/process/url?html=' + val, function(data) {
  $('#id_message').val(data);
});

如果服务器通过将params作为这样的对象传递来接受POST,你也可以清理输入:

$.get('/process/url', {html: $('#id_message').val()}, function(data) {
  $('#id_message').val(data);
});

答案 1 :(得分:0)

我猜测load命令失败了,因为你将textarea的值传递给GET参数而没有任何卫生条件。

使用escape(q) 可能帮助,但我们需要知道服务器端要发生什么事情才能确定。

答案 2 :(得分:0)

我想知道val()是否会导致问题。如果完全删除.val('&nbsp;'),它是否有效?

答案 3 :(得分:0)

你不应该只使用text或html函数代替val来解决textarea吗? AFAIR textarea没有val属性。这只是<textarea>Text inside textarea</textarea>