一起编辑输入字段而不是单独编辑

时间:2016-04-15 16:34:30

标签: javascript jquery ajax

当前情景:

现在我有一个表单,您可以在其中编辑和保存输入字段的每个记录。即firstName,lastName,email等.. 我没有收到任何错误,一切正常。

要求:

现在我要保存什么&同时修改firstNamelastName输入字段,而不是分别编辑和保存firstNamelastName输入字段。 现在他们都是不同的输入id。

问题:

如果我想使用按钮同时编辑它们,我可以通过为firstNamelastName调用同一个类来实现此目的吗?

这是一种方法吗?感谢...

代码:

$("#inputFirstName,#inputLastName,#inputEmailAddress,#inputPassword,#inputZipCode").on('keypress',function(e){
        if(e.which == 13) {
            var field = $(this).attr("id");
            var data = {};
            data['ajax']=true;
            data[$('#'+field).attr('name')]=$('#'+field).val();
            $.ajax({
                    method: "POST",
                    url: this.form.action,
                    data: data
                })
            .done(function( msg ) {
                if(msg['status']=='fail'){
                    $('#errormsg span').html(msg['msg']);
                    $('#errormsg').show();
                }
                if($('#'+field).attr('name')=='game_user_profile[userinfo][firstName]')  {
                    $('#userfirstname').text($('#'+field).val());
                }
                if($('#'+field).attr('name')=='game_user_profile[userinfo][lastName]')  {
                    $('#userlastname').text($('#'+field).val());
                }
            });
            $('#'+field+'-edit').show();
            $('#'+field+'-save').hide()
            $('#'+field).attr('disabled',true);
        }
    });

1 个答案:

答案 0 :(得分:1)

首先。保存每个按键都很糟糕,会耗尽你的服务器。 我建议您使用onChange或提交按钮

提交按钮是一个更好的解决方案。

假设我们有这个html:

<form id="updateForm">
    <input type="text" id="firstN" name="firstName" data-val="Ris" value="Ris">
    .
    .
    .
    <input type="button" value="submit" id="goBtn">
</form>

首先设置一个等于该值的data-val 然后在你的javascript中

$("#goBtn").click(function(){

    var data = {};
    data["ajax"] = true;
    $("#updateForm input").each(function(){
        var $this = $(this);
        var type = $this.attr('type');
        if(type != "button" && $this.val() != $this.attr("data-val"))
            data[$this.attr("name")] = $this.val();
    });

    if(data.length > 0){
             $.ajax({
                    method: "POST",
                    url: this.form.action,
                    data: data
                })
            .done(function( msg ) {
                if(msg['status']=='fail'){
                    $('#errormsg span').html(msg['msg']);
                    $('#errormsg').show();
                } else {
                    $.each(data, function(index, value){
                        $('updateForm input[name="'+index+'"]').attr("data-val", value);
                    });
                }
                // then do things
            });
    }

});

首先检查每个输入是否有变化(data-val保持原始值)并将其添加到数据中,如果有任何变化则调用ajax,如果成功则更新{{1每个更改的值的其他值,否则它将留给另一个提交