2015-06-30 6 views
5

У меня есть эта функция:Как распечатать первый элемент из выпадающего списка при изменении?

function LoadRegions() { 
    var region = $('#RegionID'); 


    var url = "/Account/GetRegions"; 
    $.getJSON(url, { countryId: $('#CountryID').val() }, function (response) { 
     // clear and add default (null) option 

     //region.empty().append($('<option></option>').val('').text('Please select')); 



     for (var i = 0; i < response.length; i++) { 
      region.append($('<option></option>').val(response[i].Id).text(response[i].Name)); 
     } 

    }); 
} 

Если пользователь выбирает я называю Кантри этой функции, но я хочу, чтобы отобразить на старт первого элемента из этого списка ... С помощью этой линии я получаю «Пожалуйста выберите», но я хочу первый элемент из списка:

region.empty().append($('<option></option>').val('').text('Please select')); 

Если я прокомментирую эту строку, я получу пустую ... любую помощь?

ответ

2

Я считаю, что проблема могла бы быть проблемы с цепочкой. См. Документацию по адресу end().

empty() и append() выполнялись в одной цепи. Иногда это может вызвать проблемы из-за алгоритма цепочки. documentation имеет хорошее описание проблемы.

Это может решить вашу проблему.

$.getJSON(url, { 
    countryId: $('#CountryID').val() 
}, function(response) { 
    // clear and add default (null) option 
    region 
     .empty() 
     .end() 
     .append($('<option>', { 
      value: '', 
      text: 'Please select' 
     })); 
    $.each(response, function(key, tocken) { 
     region.append($('<option>', { 
      value: tocken["Id"], 
      text: tocken["Name"] 
     })); 
    }); 
}); 
0

необходимо установить атрибут selected в тег опции, чтобы установить этот параметр как выбранный. Для этого вам потребуется изменить цикл, как это:

for (var i = 0; i < response.length; i++) { 
    if(i==0) 
     region.append($('<option selected></option>').val(response[i].Id).text(response[i].Name)); 
    else 
     region.append($('<option></option>').val(response[i].Id).text(response[i].Name)); 
} 
0
var s_string = '<option>Select Value </option>'; 

for() // your for loop 
{ 
    s_string+=''; //your option tag code (appned fetch data in same variable and appned that variable after for loop end) 
} 

// appand s_string variable to your destination id or class (append) 
Смежные вопросы