フォームデータ(名前配列)をシリアル化しようとしていますが、配列の最後のオブジェクトのみをシリアル化できます。私は動的にフォームフィールドのセットを追加することができます。そして、私がsubmitをクリックすると、配列内に新しい(最後の)オブジェクトだけが追加されます。私はこれを行うためにさまざまな方法を試してきました。これは私が来た最も近いものです。ここに遊び場のコード - http://www.bootply.com/pv7fFLC1uJがあります。私が見たいものの例:動的入力を使用してフォームデータをJSONにシリアル化します
{
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;
};
:ここ
は、簡単な解決策(ないきれいな1つのカントー)ですか?コードやHTMLなどには多くのことが起こっています。したがって、より合理的なフォームとコードであれば、実際の問題をゼロにすることが容易になり、関係するすべてのものをgrocで簡単に処理できるようになります。 – Whothehellisthat
ありがとうございます。私はコードを少しきれいにしました。 – joaoSaulo