РЕДАКТИРОВАТЬ. Благодаря проницательным комментариям кажется, что создание объекта - лучший способ. Любые предложения о том, как создать объект вместо этого?
.val() получает только значение первого ввода. Вы пробовали что-нибудь еще? Kevin B 23.10.2012
в заголовке первого просмотра (чтения) я думал, что вы хотите получить значение клавиши клавиатуры NullPoiиteя 23.10.2012
@DonnyP половина ответов ниже создает объект. Kevin B 24.10.2012
Возможно, вы хотите, как здесь stackoverflow. ком/вопросы/5550220/ nagiyevel 08.10.2015
Чтобы создать массив значений, вы можете сделать это:
var $inputValues = $('.activeInput')
.map((i, el) => el.val())
.toArray();
Чтобы создать объект с ключами и значениями, вы можете сделать это:
var data = $('.activeInput')
.toArray()
.reduce((accumulator, element) => {
accumulator[element.name] = element.value;
return accumulator;
}, {});
Ответ 3 · рейтинг 5 · earl3s
Запуская их через цикл, вы можете создать объект со строковыми доступными значениями. В Javascript нет понятия ассоциативного массива, но с помощью синтаксиса квадратных скобок вы можете получить доступ к свойствам объекта почти так же, как ассоциативный массив работает в PHP.
var values = {};
$('.activeInput').each(function() {
values[this.name] = this.value;
});
console.log(values['key1'], values['key3']);
// Note, this is the same as above.
console.log(values.key1, values.key3);
В вашей консоли вы должны увидеть: красная Франция
Это также называется хэш-картой (концепцией), используемой для быстрого поиска.
Ответ 4 · рейтинг 2 · circusdei
var inputValues = new Array();
$('input').each(function(){
inputValues[$(this).attr('name')] = $(this).val();
});
Это предполагает, конечно, что вы хотите получить значение всех входных данных.
При этом до моего сведения было доведено много причин не использовать и Array.
Ответ 5 · рейтинг 1 · Andrey Kuzmin
Если вам нужно сериализовать форму для отправки ajax, вам следует взглянуть на serialize и serializeArray методы jQuery. Особые случаи могут возникнуть, когда у вас есть много входных данных с одним и тем же атрибутом name, которые должны создавать массив на сервере.
В противном случае я бы вызвал jquery serializeArray для элемента формы и перебрал его результаты, чтобы преобразовать его в объект.