从数组多个键名中删除字符串

时间:2019-03-03 11:40:18

标签: javascript jquery ajax

我有一个表单,所有表单字段名称都以准备好的“家庭”开头。例如:

Family.Name
Family.LastName

我需要转换的内容:

Name 
LastName

现在,我想在使用 serializeArray() jquery函数发送到服务器之前,删除“家族” (如果存在)。 这是我当前的代码:

var formData = $('#FamilySpouseCreate').serializeArray();

                $.ajax({
                    type: 'Post',
                    url: '/Profile/SpouseCreate',
                    data: formData,
                    success: function() {
                        window.location.reload();
                    },
                    error: function(xhr) {
                        errorHandler(xhr);
                    }
                });

如何修改 formData 以删除“家庭”。是在数组索引名前面?

2 个答案:

答案 0 :(得分:2)

我认为这是您所需要的:

var formData = $('#FamilySpouseCreate').serializeArray();
var dataObj = {};

$.each(formData, function(i, field){
  fieldName = field.name.replace('Family.', '');
  dataObj[fieldName] = field.value;
});

$.ajax({
    type: 'Post',
    url: '/Profile/SpouseCreate',
    data: dataObj,
    success: function() {
        window.location.reload();
    },
    error: function(xhr) {
        errorHandler(xhr);
    }
});

提琴手demo

OR

如果您只想重命名字段名称。您可以这样操作:

var formData = $('#FamilySpouseCreate').serializeArray();
$.each(formData, function(i, field){
  field.name = field.name.replace('Family.', '');
});

$.ajax({
    type: 'Post',
    url: '/Profile/SpouseCreate',
    data: formData,
    success: function() {
        window.location.reload();
    },
    error: function(xhr) {
        errorHandler(xhr);
    }
});

答案 1 :(得分:-2)

var formData = $('#FamilySpouseCreate').serializeArray();
$.each(formData, function(i, item) {
    item.name = item.name.replace("Family.", "");
});

示例:https://jsfiddle.net/s18nfeq6/1/