2016-05-06 7 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'). Вал (data.id)

Я думаю, что есть проблема с объектом данных. убедитесь, что data.id shoudl содержит что-то.

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