0

我有文本区域。Textarea 由可嵌套列表序列化过程产生的内容。Textarea 内容如下:[{"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),

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

更新

基于大社区成员的建议事件已更改为单击按钮。感谢您的建议;)

4

2 回答 2

1

您将创建一个change事件:

$("#nestable_list_1_output").change(function() {
    var currentText = this.value;
    //AJAX TIME
});
于 2013-10-11T19:48:37.397 回答
1

尝试这个,

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

例子

这甚至应该在从键盘和鼠标复制粘贴的情况下工作

于 2013-10-11T20:08:12.703 回答