Ваш вопрос был:
... все значения каждого элемента формы ...
, но ваш селектор был только для элементов ввода в одной конкретной форме,Предполагая, что вы на самом деле хотели получить значения всех элементов управления в форме, тогда могут подойти следующие POJS:
function getFormValues(formId) {
var data = {};
var form = document.getElementById(formId);
if (form) {
var control, controls = form.elements;
if (controls) {
var i = controls.length;
while (i--) {
control = controls[i];
data[control.id] = control.value;
}
}
}
return data;
}
Предполагается, что у каждого элемента управления есть идентификатор, что не является обязательным требованием.Если некоторые элементы управления не имеют идентификатора, вы можете вместо этого использовать свойство name, поэтому:
data[control.id || control.name] = control.value;
В некоторых случаях ваши элементы управления могут не иметь идентификатора или имени (например, элементы управления, которыенеобходим для формы, но значения которого не должны быть отправлены, например кнопки отправки и сброса), поэтому:
var idOrName = control.id || control.name;
if (idOrName) {
data[idOrName] = control.value;
}
Возможно, вам также придется иметь дело с элементами управления с одинаковыми именами, так как значение любого из них однодоступ к последнему будет заменять значение предыдущих одноименных элементов управления.