如何通过javaScript回滚操作?

如何通过javaScript回滚操作?,javascript,Javascript,我有一个JSP页面,其中用户将显示一个由行组成的表。 如果用户愿意,他可以添加一个新行并按下save按钮,这将把数据插入表中,这是通过JavaScript完成的 我的请求是,用户添加一个新行并在其中输入详细信息。如果他单击“重置”按钮,则会清除新行中输入的数据,但不会删除整个行,从而显示用户启动时显示的原始数据 请帮帮我。你可以发现什么是新的,什么不是 有几种方法可以做到这一点。当然可以使用jQuery或其他javascript库 请参阅JSFIDLE上的jQuery示例: 我在新行中添加了一个

我有一个JSP页面,其中用户将显示一个由行组成的表。 如果用户愿意,他可以添加一个新行并按下save按钮,这将把数据插入表中,这是通过JavaScript完成的

我的请求是,用户添加一个新行并在其中输入详细信息。如果他单击“重置”按钮,则会清除新行中输入的数据,但不会删除整个行,从而显示用户启动时显示的原始数据


请帮帮我。

你可以发现什么是新的,什么不是

有几种方法可以做到这一点。当然可以使用jQuery或其他javascript库

请参阅JSFIDLE上的jQuery示例:

我在新行中添加了一个额外属性。删除isnew属性为true的行。单击“新建行”按钮时,应将此属性添加到行中


以下是一个使用纯javascript的版本:

我相信你的问题分为两部分:第一,新的行需要清除;其次,如果使用AJAX更新服务器上的数据,请记住同步重置

@321X的说法是正确的,您只需要向每一行添加一个附加属性,这样就可以轻松地清除它。当您添加一行时,我可能建议使用唯一标识符将每个数据对象存储到另一个对象中,以便在重置时可以循环遍历每个项并更新服务器(如果有必要)。下面是一些粗略的js伪esk代码(
$==jQuery
):


不漂亮,但希望它能解释这一点。根据需要的高级程度,您可以将删除的项目添加到序列列表中,这样,如果用户意外单击重置按钮,更改就可以恢复。

uhm。。。那么问题是什么呢?如何将行变为空?无法理解您的问题。他只想通过删除用户新添加的行来重置表格数据状态。是否有办法使用JavaScript???@Sadique,是的!如果jQuery能做到这一点,那么普通Javascript肯定能做到!请参阅我的更新答案以获取链接。如果这是你想要的,请将我的帖子标记为答案。Pff,我已经编写了普通javascript:-)@321X。。你的方法简单易行,但不能满足我的要求。。这意味着它没有删除行,而是只清除数据。因此,我创建了点击Servlet并重新加载页面的功能,这将清除并更正所做的所有更改。@Trev。。你的方法对我来说是非常高级的,因为我只使用JavaScript,不使用AJAX。如果你对我的方法感到好奇,请告诉我,我很乐意解释。
var newRowsList = {};

$('.addRow').click(function( ev ) {
    var newRow = {};
    // populate newRow with user-data and add it to the master list
    newRowList[ /* uid */ ] = newRow;
    // if you are using AJAX to sync row-by-row changes:
    $.ajax({
        // url, post, etc...
        success : function() {
            // now generate the DOM elements however you want
            // add the new row to the table
            $( /* row data */ ).appendTo( '#dataTable' );
        }
    });
});

$('#resetTable').click(function( ev ) {
    for ( var i in newRowsList ) (function( item, data ) {
        $.ajax({
            // url, post, etc...
            success : function() {
                // destroy the row by using the uid passed in
                $( '.' + item ).remove();
                // and remove the item from the list
                newRowsList[ item ] = null;
            }
        });
    })( i, newRowsList[ i ]);
});