2009-09-03 4 views
0

Я использую следующую функцию jQuery для заполнения выпадающего списка. Как только пользователь выбирает элемент, я сохраняю выбранное значение в переменной сеанса и Im способен вернуть данные из переменной сеанса через скрытую запись в переменную (selectedApp) после обратной передачи.Как установить выделенный элемент в раскрывающемся списке с помощью jQuery

Проблема в том, что после обратной передачи я не могу установить список обратно к выбранному элементу, который используется для выбора, прежде чем нажимать кнопку «Отправить».

Как установить выбранный элемент в выпадающем списке как выбранный элемент?

  var selectedApp = $('#selectedApplication').val(); 

      $.getJSON("/ApplicationSettings/Applications/List", function(data) { 
       var items = "<option>----------- Select Application to Configure ----------</option>"; 
       $.each(data, function(i, application) { 
        items += "<option value='" + application.Value + "'>" + application.Text + "</option>"; 
       }); 
       $("#Applications").html(items); 
      }); 

ответ

1

Вы можете изменить внутри вашего each быть:

items += "<option value='" + application.Value + "' " + (selectedApp === application.Text ? "selected" : "") + ">" + application.Text + "</option>"; 

Предполагая, что selecteApp имеет текстовое значение. В противном случае используйте application.Value для сравнения.

0

Получите ли ваша конечная точка ajax выбранное состояние каждой опции? Потому что, если я что-то отсутствует, в данный момент сервер должен знать, какой вариант был выбран

Прямо сейчас, это, кажется, ваш JSON выглядит так

[ 
    {"Value": 1, "Text": "One"} 
    , {"Value": 2, "Text": "two"} 
    // etc 
] 

Просто измените его в этот

[ 
    {"Value": 1, "Text": "One", "Selected": false} 
    , {"Value": 2, "Text": "two", "Selected": true} 
    // etc 
] 

И сделать свой обратный вызов использовать значение соответственно

$.each(data, function(i, application) { 
    var selected = application.Selected? ' selected' : ''; 
    items += "<option value='" + application.Value + "'" + selected + ">" + application.Text + "</option>"; 
}); 
0

спасибо! это то, что я закончил делать

 $.getJSON("/ApplicationSettings/Applications/List", function(data) 
     { 
      var items = "<option>----------- Select Application to Configure ----------</option>"; 
      $.each(data, function(i, application) 
      { 
       var selected = (application.Value == selectedApp) ? 'selected' : ''; 
       items += "<option value='" + application.Value + "'" + selected + ">" + application.Text + "</option>"; 
      }); 
      $("#Applications").html(items); 
     }); 
Смежные вопросы