Цикл $ .each для заполнения массива json не работает

0

Я пытаюсь заполнить массив json для отправки на сервер через ajax. Однако он не работает, и я не совсем уверен, почему. Здесь код:

    var form = $('.dash-name-form');


    form.serializeArray();

    input = [];

    $.each(form[0], function(){

        input.push({

            this.name : this.value
        });
    });

    console.log(JSON.stringify(input));

Он работает, когда я делаю следующее:

    $.each(form[0], function(){

        input.push({

            'name' : this.name, 
            'value': this.value
        });
    });

Но мне бы очень хотелось получить более простой вывод из первого блока, чтобы лучше работать с базовым интерфейсом, который я использую (laravel Input :: json() → all() не работает со вторым),

Все предложения приветствуются. Благодарю вас.

  • 0
    Вам известно о том, что вызов serializeArray ничего не делает?
  • 0
    установить значение для массива, возвращаемого из serializeArray() , `var formData = form.serializeArray (); Пропустите отправку данных в отдельный массив, если вам не нужно фильтровать или обрабатывать данные.
Теги:
arrays
each
push

3 ответа

0

Вы должны обратить внимание на тот факт, что такие функции, как serializeArray возвращают значение, и если вы не храните значение в переменной или не используете его напрямую, вызов бесполезен

Попробуйте это вместо этого. Он предоставит вам данные формы в виде простого объекта

var all =$('.dash-name-form').serializeArray(),
      data = {};

$.each (all, function (key, val){
      data [key]  = val;
});

console.log (data);
0
input.push({
    this.name : this.value
});

Похоже, это будет проблемой. this.name будет интерпретироваться как ключ, а не то, что вы можете ожидать (это то же самое, что делать {"this.name": this.value}).

var foo = "bar";
var x = {
  foo: "test"  
}

console.log(x);
0

Попробуйте вот так:

$.each(form.serializeArray(), function(){
    var obj = {}; 
    obj[this.name] = this.value;
    input.push(obj);
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню