serializeArray 不适用于选择框

serializeArray not working for selectbox

我正在尝试将表单数据转换为 json 并读取在单击相应复选框时修改的字段值。这适用于文本字段,但不适用于 select 框。任何人都可以看看 fiddle 并帮助我阅读 "Person" 选项卡中的 select 框(爆头)值。

$('#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/

serializeArray() 将仅采用那些将 name 分配给它们的控件。由于下拉菜单没有指定任何名称,因此未列出。

要更正,请指定一个名称:

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

看到这个working fiddle