尝试使用jquery从textarea获取当前数据,并将其替换为返回的服务器。到目前为止q
值是正确的,而不是使用服务器返回的内容更新它,它只是将其替换为' '
q = $('textarea#id_message').val();
alert(q)
$("textarea#id_message").val(' ').load( '/process/url?html=' + q );
更新
我只是尝试将服务器数据传递给测试结果<div>
,这确实有效,<textarea>
没有。
$( '#results' ).html( ' ' ).load( '/process/url?html=' + q );
答案 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(' ')
,它是否有效?
答案 3 :(得分:0)
你不应该只使用text或html函数代替val来解决textarea吗? AFAIR textarea没有val属性。这只是<textarea>Text inside textarea</textarea>