如何使用jquery将表单数据作为对象获取

12 浏览
0 Comments

如何使用jquery将表单数据作为对象获取

这个问题已经有了答案

使用jQuery将表单数据转换为JavaScript对象

我已经尝试过jQuery(\'#form_id\').serialize()。这只返回表单数据作为URL编码字符串。是否可能将表单数据作为对象获取?

admin 更改状态以发布 2023年5月23日
0
0 Comments

您可以查看serializeArray函数:

$('#form_id').serializeArray()

0
0 Comments

你试过使用 "serializeArray" 吗?它会给你一个名称和值的数组。如果你想的话,也可以把它转换成对象:

var paramObj = {};
$.each($('#myForm').serializeArray(), function(_, kv) {
  paramObj[kv.name] = kv.value;
});

(我得再检查一下 jQuery 对数组的处理方式;我想它会将它们编码为 JavaScript 数组值,但我不确定。)

编辑 啊不,它不会将多值参数设置为数组 - 你会得到相同名称的重复值。因此,制造对象的代码应该是这样的:

var paramObj = {};
$.each($('#myForm').serializeArray(), function(_, kv) {
  if (paramObj.hasOwnProperty(kv.name)) {
    paramObj[kv.name] = $.makeArray(paramObj[kv.name]);
    paramObj[kv.name].push(kv.value);
  }
  else {
    paramObj[kv.name] = kv.value;
  }
});

(或者类似的代码;可能还可以再压缩一点。)

0