Получить значение текстового поля с помощью JQuery в ERB - PullRequest
0 голосов
/ 16 апреля 2011

Я использую Rails 3, и я пытаюсь передать автозаполнение значения из другого поля, которое я собираюсь использовать вместе с вводом из поля автозаполнения для фильтрации.

Я обнаружил, что могу передать параметр с помощью пути автозаполнения:

 <%= rif.autocomplete_field :readable_qty , recipes_autocomplete_weight_conversion_description_path + '?ingredient=' + $(this).attr(name), :'data-delimiter' => "\s" ,
              :value => @recipe.ingredients[i].readable_qty, :width=>30, :size=>20 %>

Здесь я пытаюсь использовать $ (this) .attr (name), чтобы получить текущий текст из другого текстового поля, которое выдает ошибку. Кто-нибудь знает, как заставить это работать?

1 Ответ

0 голосов
/ 16 апреля 2011

Похоже, в вашем понимании есть пробел. Я не являюсь пользователем Rails, но я почти уверен, что содержимое внутри <% ...%> оценивается на сервере во время создания страницы для возврата в браузер. Это означает, что любые выражения, которые вы используете там, должны быть поняты rails, поэтому размещение выражения jquery там не будет работать.

С другой стороны, выражения JQuery оцениваются в браузере в результате какого-либо события браузера (например, нажатия пользователем кнопки). Похоже, что вы пытаетесь сделать это, захватить информацию браузера и затем обработать ее сервером. Это требует либо получения, либо публикации на сервере, что заставляет сервер перегенерировать содержимое страницы или выполнить какое-то действие (в зависимости от вашего кода между <% ...%>. Я делаю это примерно так:

$('#ingredient').click(function (e) {
    var postParams = {};
    postParams['ingredient'] = $(this).attr(name);
    $.post('myPage', 
    postParams,
...
});

Это не рабочий код. Я просто пытаюсь дать вам идею.

Затем в коде вашей страницы вы извлекаете параметр из запроса, а не пытаетесь использовать выражение jquery.

Надеюсь, это поможет.

...