serializeArray не работает для selectbox - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь преобразовать данные формы в json и прочитать значения полей, которые изменяются при нажатии на соответствующий флажок.Это работает для текстовых полей, но не для поля выбора.Может ли кто-нибудь, пожалуйста, взгляните на скрипку и помогите мне прочитать значение поля выбора (Headshot) на вкладке «Персона».

$('#getDataBtn').click (function() {
     var data = $('#userForm').serializeArray();
     var pfId = 1234;
     var person=[];
    //  $.each(data, function(i, field){
    //     person[field.name] = field.value;            
    //  });
    //  personarray['Person']=person;
    //  console.log(JSON.stringify(personarray));
     var personObj = {};
     $.each(data, function(i, field){
        personObj = {};
        console.log(field.name);
        personObj['table name']= "Person";
        personObj['unique id']= "0";
        personObj['profile id']= pfId;
        personObj[field.name] = field.value;
        person.push(personObj)
    });
    personarray['Person']=person;
    console.log(JSON.stringify(personarray));  

});

https://jsfiddle.net/ycf6Ltad/5/

1 Ответ

0 голосов
/ 08 мая 2018

serializeArray() будет принимать только те элементы управления, которым назначено name. Поскольку в раскрывающемся списке не указано имя, он не был указан.

Чтобы исправить, присвойте имя:

<select class="form-control" id="sel1" name="sel1" disabled>
  <option>Yes</option>
  <option>No</option>
</select>

См. рабочая скрипка .

...