【发布时间】:2016-11-16 13:06:26
【问题描述】:
我正在尝试序列化我的表单数据(名称数组),到目前为止我只能序列化数组中的最后一个对象。我可以动态附加一组表单字段,当我单击提交时,它仍然只会在数组中附加新的(最后一个)对象。我已经尝试了很多不同的方法来做到这一点,这是我最接近的。这是操场上的代码 - http://www.bootply.com/pv7fFLC1uJ。我想看的例子:
{
timeZonePicker: "-7",
start: "09:00",
end: "17:00",
content: "San Francisco"
}
{
timeZonePicker: "-3",
start: "09:00",
end: "17:00",
content: "São Paulo"
}
HTML
<form class="form-inline fields_wrapper">
<select class="form-control timeZonePicker" name="timeZonePicker[]" id="timeZoneId">
<option value="-12" >(GMT -12:00) Eniwetok, Kwajalein</option>......
</select>
<input type="time" class="form-control start" name="start[]" value="">
<input type="time" class="form-control end" name="end[]" value="">
<input type="text" class="form-control content" name="content[]" value="">
</form>
jQuery
$.fn.serializeObject = function(options) {
var data = $(this).serializeArray(), obj = {};
$.each(data, function(i, el) {
console.log(data);
var key = el.name;
//remove the brackets from each html name array
if (key.slice(-1) == "]") {
key = key.slice(0,-2);
}
if (el.name in options) {
obj[options[key]] = obj[options[key]] || {};
obj[options[key]][key] = el.value;
}
else {
obj[key] = el.value;
}
});
return obj;
};
【问题讨论】:
-
你能把问题简化为更简单的问题吗?代码和 HTML 等有很多事情要做,所以如果它是一个更精简的表单和代码,就更容易解决真正的问题,也更容易让其他人了解所涉及的一切。
-
感谢您的建议。我清理了一下代码。
标签: javascript jquery html json forms