如何在Javascript中获取旧值和新值?

时间:2018-04-03 21:03:25

标签: javascript java jsp struts2

我有一个表格,当我点击该特定字段时,可以使用Javascript进行编辑。我可以更改值并更新旧值。

如何获取旧值以及用于记录目的的新值?

<s:iterator var="posting" value="PostLookup">
    <tr class="update-rel">                             
        <td id="${post.Id}"><input type="checkbox" /></td>
        <td class="alignleft">${post.coin}</td>                                 
        <td class="alignleft" >${post.rate}</td>                                        
        <td class="alignleft">${posting.trainCode}</td>
        <td class="alignleft"><fmt:formatDate pattern="HH:mm" value="${posting.postTime}" /></td>
        <td class="alignleft">${posting.payMode}</td>
        <td class="alignleft">${posting.payModeSub}</td>
    </tr>
</s:iterator>

JavaScript 使行可编辑

     function activateTableEditing() {
    $(document).ready(function() {
        var rowIndex;
        var columnIndex;

        // get dynamic values from the server through a json call to be displayed inside the drop down box
        var jsonObject = getJSONObject('ajax/fetchpayMode.action', 'Pay Modes');
        var payModes = jsonObject.payModes;

        $('#tablePostLookup tbody td').on('click', function(e) {

            rowIndex = $(this).parent().index('#tablePostLookup tbody tr');
            columnIndex = $(this).index('#tablePostLookup tbody tr:eq(' + rowIndex + ') td');
          //console.log('Row ' + rowIndex + ' and column ' + columnIndex + ' is clicked ...');

            if (columnIndex == 2 || columnIndex == 3 || columnIndex == 4) {
                editInputBox(e, $(this).parent(), rowIndex, columnIndex);
            }
            if (columnIndex == 5) {
                editCombobox(e, $(this).parent(), rowIndex, columnIndex, payMode);
            }
            if (columnIndex == 6) {
                var payModes = $(this).parent().children('td:eq(5)').text();
                jsonObject = getJSONObject('ajax/fetchpayModeSub.action?payModeSub=' + payMode, 'paymode sub ');
                var paymentModeSub = jsonObject.paymentModeSub;
                editCombobox(e, $(this).parent(), rowIndex, columnIndex, paymentModeSub);
            }

        });
    });
}

获取当前值 - 单击更新按钮时。

function savePostLookup(e, action) {

var countRowSelected = 0;
$('#tablePostLookup tbody tr').each(function() {
    var result = $(this).children('td').eq(0).children('input[type=checkbox]').eq(0).is(':checked');
    if (result) {
        ++countRowSelected;
        e.preventDefault(); 
        var id = $(this).find('td:eq(0)').eq(0).attr('id');
        var coin = $(this).find('td:eq(1)').text();
        var rate = $(this).find('td:eq(2)').text();
        var trainCode = $(this).find('td:eq(3)').text();
        var postTime = $(this).find('td:eq(4)').text();
        var payMode = $(this).find('td:eq(5)').text();
        var payModeSub = $(this).find('td:eq(6)').text();

        createJSONObject(id, coin, rate, trainCode, postTime, payMode, payModeSub);
    }
});

1 个答案:

答案 0 :(得分:1)

这是你可能做的事情。使用以下键值对创建对象。

{
  "td1": [
    {
      "oldVlaue": "old",
      "newValue": "new"
    }
  ],
  "td2": [
    {
      "oldVlaue": "old1",
      "newValue": "new1"
    }
  ]
}

因此,每次单击某个表值时,您都可以从 event.target 中获取值,还可以获取单击的表元素。只需使用您获得的值更新JSON对象中的值即可。

正如我所说,这可能是一种追踪旧价值或新价值的方法。随意尝试不同或更好的东西。