2016-05-06 185 views
1

我使用jQuery的1.12.3.min.js和动态获取选择设置所选的选项JQuery的

function loadCompanies() { 
if ($("#isSubsidiaryCompany").is(":checked")) { 
    $.ajax({ 
     type : "GET", 
     url : "get_companies", 
     success : function(data) { 
      $.each(data, function(i, data) { 
       $('#companiesList').append($('<option>', { 
        value : data.id, 
        text : data.name 
       })); 
      }); 
     } 

    }) 
    $("#companiesSelect").show(); 
    $('#companiesList').val(data.id); 
} else { 
    $("#companiesSelect").hide(); 
} 

我想选择的选项设置,但$('#companiesList').val(data.id)不`吨的工作选择,你可以建议我正确的方法做到这一点,在此先感谢

+0

您的选项是否可以动态生成? – divy3993

回答

4

您正在设置AJAX回调函数的外部值。这意味着这些选项不能保证他们会在那里。把你的代码到成功回调:

if ($("#isSubsidiaryCompany").is(":checked")) { 
    $.ajax({ 
     type : "GET", 
     url : "get_companies", 
     success : function(data) { 
      $.each(data, function(i, data) { 
       $('#companiesList').append($('<option>', { 
        value : data.id, 
        text : data.name 
       })); 
      }); 
      $("#companiesSelect").show();    // < === HERE === 
      $('#companiesList').val(data.id); 
     } 

    }) 
// ... 

此外,为了data你在你的.val(data.id)指哪?

+0

我已经试过了,但没有帮助 –

+0

谢谢,你是对的,问题在于数据变量,我没有注意到它 –

0

$( '#companiesList')。VAL(data.id)

我觉得这是你的数据对象的问题。请确保data.id shoudl包含某些内容。