我无法在elRTE富文本编辑器中使用ajax发布文本区域值。
编辑器演示页面如下所示;
http://elrte.org/demo
我使用下面的代码;
$.ajaxSetup({
type: "POST",
url: "forms.php",
cache: false,
dataType: "html"
});
$("input.add").live("click", function(){
$.ajax({
data: {action: 'add', tag: $('input.tag').val(), description: $('#editor').val()},
success: function(data){
$("#message").html(data);
}
});
});
我尝试了几种不同的方式来发送textarea值,但都无法实现。
只要快速浏览一下您的演示页面,我就会注意到您的#editor "textarea"
实际上不是一个文本区域,而是一个看起来像文本区域的DIV
。所以$('#editor').val()
不起作用。我建议使用$('#editor').html()
,但#editor
不是真正的编辑器div,所以它实际上不会让你到达你想要的位置。Shyju的答案是选择实际的div并使用.html()
来获取联系人。
但我只是进一步查看了该网站,似乎有一个javascript api可以让您轻松地获得所需的数据:$('#editor').elrte('val');
http://elrte.org/redmine/projects/elrte/wiki/JavaScript_API_EN
您可能遇到的另一个问题是,您当前正在通过GET
(默认方法)执行ajax请求,但由于描述值可能非常大,对于URL的最大长度限制来说可能太大。我建议您的ajax请求使用POST
而不是GET
。Ie:类型:"POST
"
我可以看到div有一个名为"el-rt-structure
"的类。尝试使用它选择元素,并使用html()函数获取该元素的内部html
$("input.add").live("click", function(){
var textAreContent=$(".el-rte-structure").html();
$.ajax({
data: {action: 'add', tag: $('input.tag').val(), description: textAreContent},
success: function(data){
$("#message").html(data);
}
});
});