2017-01-05 1 views
0
.

пытается создать объект в javascript, используя входные значения и id. Он работает, но когда я пытаюсь сериализовать/стирать объект, становится пустым.Создайте ассоциативный массив JavaScript и перейдите к PHP с помощью каждого цикла.

Мой код:

 dataArray = []; 

    $('.popover :input').each(function() { 

     dataArray[$(this).attr('id')] = $(this).val(); 

    }); 

    console.log(dataArray); 

    /* 
    RESULT: 
    Array[0] 
     home_recent_jobs:"123" 
     home_recent_jobs2:"345" 
     length:0 
     undefined:"" 
     __proto__:Array[0] 
    */ 

    var json = $(dataArray).serialize(); 
    var ser  = JSON.stringify(dataArray); 

    console.log(json);  // RESULT: EMPTY 
    console.log(ser);  // RESULT: [] 

Идеи?
Что я делаю неправильно?

+0

Я делаю этот код $ ("input [name = 'test_modal []']: checked"). Each (function() {checked [$ (this) .attr ('id')] = $ (this) .val();} var ser = JSON.stringify (checked); console.log (ser); у меня есть [null, "jordan", "michael"] console.log (ser); – dimis283

+1

Вы можете использовать dataArray.push ($ (this) .val()); – dimis283

+0

Спасибо @ dimis283 thats, что я в итоге doind;) –

ответ

0

У меня была эта проблема некоторое время назад. Попробуйте использовать этот LIB, это поможет мне много

https://github.com/macek/jquery-serialize-object

+0

возвращает пустой объект. Думаю, что я неправильно создаю объект или что-то похожее –

0

Ok ... После поиска я нашел это решение - лучше каждый цикл

новый каждый цикл:

$('.popover :input').each(function (index) { 

     var cid = $(this).attr('id'); 
     var cval = $(this).val(); 

     if(cid && cval) { 
      var obj = { 
       id: cid, 
       val: cval 
      }; 
      dataArray.push(obj); 
     } 
    }); 

Кажется, это трюк. Спасибо за помощь

Смежные вопросы