У меня есть форма, содержащая список текстовых полей
<input type="text" name="list[]" value="">
<input type="text" name="list[]" value="">
Я запускаю какой-то пользовательский jQuery для проверки ввода и выполнения некоторых других действий перед тем, как отобразить пользователю кусок JSON. Я хочу, чтобы эти элементы стали стандартным массивом javascript a la:
{"list":["something","something else"]}
Есть ли простой вызов, который я могу сделать для конкретного элемента, чтобы вытащить его в виде массива, что-то вроде этого?
var jsonVars = {};
jsonVars['list'] = $("input[name=list]").getArray();
Если у вас есть структура и вы хотите получить значения, которые вы могли бы сделать:
var jsonVars = {};
jsonVars['list'] = $('input[name="list[]"]').map(function(){return this.value;}).get();
Вы можете использовать $('input[name="list[]"]').serializeArray()
но возвратится в другом формате как массив объектов (с именем и значением).
Там jQuery сериализует функцию. Эта тема похожа на вашу и может дать вам более глубокое понимание.
$(form).serializeArray()