У меня есть HTML формы, как:Получить данные формы в условном формате JSON
<form action="" id="my-form">
<input type="text" name="id" value="1"/>
<input type="text" name="custom" value="a"/>
<input type="text" name="custom" value="b"/>
<input type="text" name="custom" value="c">
</form>
Когда я получаю данные формы в формате JSON, он показывает, как:
{id: 1, custom: c} //get the last value only
Мне нужно эти данные такой так, что:
если
name="custom"
существует только один раз в моей форме, JSON будет{id: 1, custom: c} // it is working now
если
name="custom"
существует несколько раз в моей форме, JSON будет{ id: 1, multiple:[ {custom: a}, {custom: b}, ... ] }
ИЛИ
{id: 1, custom:[a, b, c]}
мой метод, чтобы получить JSon данных является:
function getFormData($form){
var unindexed_array = $form.serializeArray();
var indexed_array = {};
$.map(unindexed_array, function(n, i){
indexed_array[n['name']] = n['value'];
});
return indexed_array;
}
var $form = $("#my-form");
var data = getFormData($form);
Как решить эту проблему? Спасибо в продвинутом режиме.
где ваш метод для преобразования данных формы JSON? – gurvinder372
Моя первоначальная мысль использует имя = "custom []", который затем создает пользовательский массив: {id: 1, custom: ["a", "b", "c"]} – yusijs
@gurvinder, мой метод : function getFormData ($ form) { var unindexed_array = $ form.serializeArray(); var indexed_array = {}; $ .map (unindexed_array, function (n, i) { indexed_array [n ['name']] = n ['value']; }); return indexed_array; } var $ form = $ ("# my-form"); var data = getFormData ($ form); –