jquery序列化多选

标签 jquery html

如何获取所有表单值并使用给定变量或数组序列化多选? 输出参数必须是;

id=1&name_1=John&name_2=Juan&name_3=Isabel&name_4=Doe

名称多选中的位置

最佳答案

作为this answer演示,当通过 $(form).serialize() 序列化时,jQuery 将使用相同的 'name' 值作为每个选择的键:

id=1&name=John&name=Juan&name=Isabel&name=Doe

服务器了解如何处理它。您的服务器很可能会处理得很好。

如果你绝对需要你提到的格式,你应该能够使用类似这样的东西(未经测试)将它组合在一起:

var elementArray = $(form).serializeArray();
var modifiedArray = [];
var counts = {};
var multipleValues = {};
$.each(elementArray, function(index, value) {
  if (counts[value.name]){ counts[value.name] += 1; } else { counts[value.name] = 1; }
});
$.each(elementArray, function(index, value) {
  if (multipleValues[value.name] || counts[value.name] > 1){ 
    if (!multipleValues[value.name]) { multipleValues[value.name] = 0; } else { multipleValues[value.name] += 1; }
    modifiedArray.push({name: value.name + "_" + multipleValues[value.name], value: value.value});
  } else {
    modifiedArray.push({name: value.name, value: value.value});
  }
});
var result = $.param(modifiedArray);

关于jquery序列化多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926503/

相关文章:

jQuery - 滑动到下一个 p 标签

javascript - 列表对象 ID 值与对话框模式属性绑定(bind)

javascript - 更新p文本而不刷新页面

javascript - 有没有更快的方法来设置下拉列表中的选定值?

html - 我无法让我的页眉图片适合页面内容

html - 如何在页面全局 CSS 文件中定义 SVG 渐变

Javascript 函数参数出现意外结果

javascript - 如何使用 Angular2 管道按离今天最近的日期排序

javascript - 如何在从 localStorage 中的变量加载页面时设置基于 UL 的下拉列表的值?

jquery - 在没有位置的 div 上方显示表格 : absolute. HTML/jQuery