关于文本区域更改 - ajax 帖子

On textarea changes - ajax post

本文关键字:ajax 帖子 区域 于文本 文本      更新时间:2023-09-26

我有文本区域。文本区域 由可嵌套列表实现过程产生的内容。文本区域内容如下:[{"id":1,"children":[{"id":4}]},{"id":2}]

文本区域:

 <div class="span6">
    <h3>Serialised Output (per list)</h3>
    <textarea id="nestable_list_1_output" class="m-wrap span12"></textarea>
 </div>

我也有一个jquery函数:

$(function() { 
function conv(data){
var result=[];
function dfs(node, parent) {
    for(var i in node){
        result.push({id:node[i].id,pid:parent});
        if (node[i]['children']) dfs(node[i]['children'],node[i]['id']);
    }
}
dfs(data, 0);
return result;
}

我想在每次更改texarea上的值时都发布ajax帖子。

var data     = JSON.stringify(conv($.parseJSON($("textarea#nestable_list_1_output").val())));
$.ajax({
  type: 'POST',
  url: "http://example.com/navigation/save_menu",
  data: 'menu_data=' + JSON.stringify(data),
  dataType: 'json',
  success: console.log('Data Post:' + data),

});
怎么做?非常感谢您的回复。卡利斯。

更新

基于伟大的社区成员,sugestions事件已更改为clik按钮。感谢您的;)

您将创建一个change事件:

$("#nestable_list_1_output").change(function() {
    var currentText = this.value;
    //AJAX TIME
});

试试这个,

$("#textarea").on('keyup paste', function(e) {
    clearTimeout($(this).data('timeout'));
    $(this).data('timeout', setTimeout(function(){
        alert(e.target.value);
    }, 200));
});

这甚至应该适用于从键盘和鼠标复制粘贴的情况