如何修改我的保存功能以同时保存用户/编辑用户?

时间:2014-08-06 10:15:42

标签: javascript jquery html

我希望我的保存功能可以做两件事:

1.保存用户表 - 完成

2.在表格中更新用户 - 未完成

保存功能代码:

var buildUser = function () {
    $('#save').click(function () {
        var newUser = {};

        $('#myForm').find('input[type!=button]').each(function () {
            var value = $(this).val();
            var name = $(this).attr('id');
            newUser[name] = value;
        });
        //i think here will be an if condition but i dont know how
        buildRow(newUser);
        userData.push(newUser);

        $("#myForm")[0].reset();
    });
};

以下是整个代码:http://jsfiddle.net/Shakerwtd/e9273/

日期取自json文件。

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,你的HTML是什么样的?

执行此操作的一种方法是将id分配给用户。

  1. 构建ID生成器服务。简单的事情,只需给出唯一的ID,就像这样:

    var GeneratorModule =(function(){

    var generator;
    
    function init() {
        var id = 0;
        function getId() {
            return id++;
        }
        return {
            getId: getId
        };
    }
    return  {
        getGenerator: function() {
            if(!generator) {
                generator = init();
            }
            return generator;
        }
    };
    

    });

  2. 你会得到idGenerator = GeneratorModule()的生成器.getGenerator();

    然后你可以idGenerator.getId();每次你建立新的身份。

    1. 让您的初始“保存”按钮获取该ID并将其提供给buildRow。
    2. 让buildRow还将id保存在tr级别,例如<tr id="tr-12345">
    3. 让编辑过的行的“保存”按钮也具有此ID,例如id = 12345。
    4. 您的//i think here will be an if condition but i dont know how应检查保存中是否有ID。如果有,则不要调用buildRow,而是调用updateRow。
    5. updateRow显然会找到id =“tr-12345”的行。 (tr-部分是因为您在页面上不能有两个相同的ID。显然。)