2012-01-06 37 views
0

我无法发布带有ajax的textarea值elRTE富文本编辑器。jQuery,用ajax发送富文本编辑器的textarea值?

编辑器演示页面如下所示;

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的值,但无法实现。

回答

3

只需快速浏览一下您的演示页面,我注意到您的#editor "textarea"实际上并不是一个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的最大长度限制太大。我建议使用POST而不是GET代替您的ajax请求。即:类型:“POST

+0

这就是答案我:)的内部HTML。我编辑了我的帖子,我已经用ajaxSetup在ajax中使用post方法,不过谢谢你的注意。 – tewoos 2012-01-06 22:27:45

0

我可以看到div有一个名为“el-rt-structure”的类。尝试选择使用的元素和获取使用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); 
     } 
    }); 
}); 
+0

我试过这种方法,但没有奏效。我认为这是因为iframe。谢谢。 – tewoos 2012-01-06 22:20:52