Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组多键名称中删除字符串_Javascript_Jquery_Ajax - Fatal编程技术网

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

Javascript 从数组多键名称中删除字符串,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个表单,所有表单字段的名称都以一个准备好的“家族”开头。例如: Family.Name Family.LastName 我需要转换的内容: Name LastName 现在我想删除“家族”。如果存在,在使用serializeArray()jquery函数发送到服务器之前。 这是我目前的代码: var formData = $('#FamilySpouseCreate').serializeArray(); $.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以从数组索引名中删除“Family.”前缀

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

示例:

我认为这就是您需要的:

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);
    }
});
小提琴手

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

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);
    }
});

可以这样尝试:var formData=$(“#FamilySpouseCreate”).serializeArray();formData.map((item)=>{item.name=item.name.slice(item.name.indexOf('.')+1);return item;})