只从表中发送更改的数据

Sending only changing data from the table

本文关键字:数据      更新时间:2023-09-26

我有这个从服务器接收的表:(使用ajax):

   $.each(data, function(i, item) {
        $('#MyTable tbody').append("<tr>"d
             +"<td>" +data[i].A+ "</td><td>" 
             +data[i].B
             +"</td><td><input type='text' value='"
             +data[i].C+"'/></td><td><input type='text' value='"
             + data[i].D+"'/></td>"
             + "</tr>");
        });

C和D是编辑文本,用户可以修改它们。在用户更改后,我想"获取"表中按行更改的所有数据(所有已更改的行,即使只有C(或D)已更改),并通过ajax发送JSON。我如何读取数据到JSON?

我开始写一个,但我卡住了(这样我发送了所有的表,而不是唯一改变的行,我想发送唯一改变的行):

function getUserData()
{
    var newData = new Array();
    $.each($('#MyTable tbody tr'),function(key,val){
        var inputF = $(this).find("input[type=text]");          
        var fileldValues = {};
        fileldValues['c'] = $(inputF[0]).val();
        fileldValues['d'] = $(inputF[1]).val();
        fileldValues['a'] = $($(this).children()[0]).text();
        fileldValues['b'] = $($(this).children()[1]).text();
        newData.push(fileldValues);
    });
    return JSON.stringify(newData);
}
function saveNewData(){
var newData = getUserData();
$.ajax({
    type: "GET",
    url: "save",
    dataType: "json",
    data: { 
    newData: newData},
    contentType : "application/json; charset=utf-8",
    success : function(data) {
    },
    error : function(jqXHR, textStatus, errorThrown) {
        location.reload(true);
    }
}); 
}

为文本字段添加一个onchange事件。当它触发时,向该元素添加一个类名。在保存代码中,只选择那些具有该类名的元素。

事件:

$('#MyTable input[type=text]').on('change',function() {
     $(this).addClass('changed');
}) 

改变:

  var inputF = $(this).find("input[type=text]"); 

:

  var inputF = $(this).find("input[type=text].changed");