我有一个表单,所有表单字段名称都以准备好的“家庭”开头。例如:
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 以删除“家庭”。是在数组索引名前面?
答案 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.", "");
});