2010-02-04 2 views
0

У меня есть форму для добавления рецептов, в том же виде пользователь может добавить несколько ингредиентов рецептов. Каждый ингредиент, добавляемый пользователем, выполняется с помощью вызова ajax, поэтому мне не нужно отображать поле выбора ингредиентов. Когда пользователь пользователя выбрал это ингредиент идентификатор выбранного ингредиента хранится в скрытом вводеВыбор значения из поля выбора, когда параметры добавлены вызовом ajax

<%= builder.hidden_field :ingredient_id %></div> 

Когда пользователь выбирает компонент из списка, триггер в Ajax вызов, чтобы заполнить другой блок выбора, который экранное все в зависимости от ингредиентов. Эта настройка работает отлично, когда я добавляю новые рецепты.

У меня есть проблема, когда я открыть существующий рецепт в режиме редактирования ...

У меня есть следующий HTML

<%= builder.hidden_field :ingredient_id %> 
<%= builder.select(:serving_size_id, '') %> 

JQuery код

jQuery.fn.bindServingSizes = function(ingredientid) { 
    var $this = $(this); 

    $.getJSON("/serving_sizes?ingredientid=" + ingredientid, function(j) { 

     var options = "<option value=''>Please select a serving size</option>"; 
    for (var i=0; i < j.length; i++) 
     options += '<option value="' + j[i].serving_size.id + '">' + j[i].serving_size.name + '</option>'; 

     $this.html(options); 
    }); 
    }; 

У меня есть вызов Ajax который запускается при загрузке страницы, он считывает значение в скрытом вводе и получает размеры обслуживания и добавляет его в качестве параметров в поле выбора. Мой вопрос: Как выбрать правильный вариант в поле выбора? У меня есть данные в столбце «serve_size_id», , но я не знаю, как получить его значение, поэтому я могу установить правильный выбранный элемент по значению.

Надеюсь, что я достаточно ясен в своем объяснении.

ответ

1

Я вообще не эксперт по jQuery, но взглядом вашего примера я вижу, что вы просто создаете HTML для предоставления доступных параметров.

Поэтому вы можете добавить атрибут selected="selected" к опции, которая соответствует значению serving_size_id. Получение значения из serving_size_id с помощью JQuery можно сделать с помощью:

var serving_size = $("#serving_size_id").val(); 

Это значение ван быть использованы в цикл «найти» выбранный вариант.

+0

Прошу прощения, потому что я думаю, что, возможно, я выбрал неверный путь. Вопрос, который у меня есть, заключается в том, как мне получить значение из столбца «serve_size_id». Если я могу каким-то образом получить значение, я могу использовать jQuery для установки выбранного индекса. – iJK

+0

Нет проблем, я немного изменил свой ответ. Надеюсь, теперь (подробнее) ясно? – Veger

0

С помощью JQuery, вы можете установить выбранный <option> по:

$(combo).val('selectedValue'); // * 

Документация: http://api.jquery.com/val/#val2

* Ваш код не позволил мне использовать реальные имена и значения на примере кода

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