2012-01-06 124 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