Как представить частичное из JavaScript

У меня есть выбор, который заполняется в зависимости от выбора в другом выборе, Чтобы сделать это, я сделал то, что рекомендуется в Railscast № 88 в 'Динамических Избранных Меню'.

Но теперь я должен представить частичное, передающее в значении, выбранном в каждом из тех выборов. Я не могу выяснить, как просто инициировать вызов метода от: событие onchange в выборе, таким образом, я думаю, что должен назвать рендеринг: неравнодушный из обработчика JavaScript, который обнаруживает выборы, изменяют событие. Но я не могу выяснить как. Я попробовал следующее в методе JavaScript (в .js.erb файле), но это не работает, как надеялся:

function staffSelected() {
    $('date_area').show();
    <% render :partial => "calendar" -%>
}

У кого-либо есть хорошее решение?

9
задан 99miles 25 February 2010 в 02:17
поделиться

1 ответ

Вы не можете рендерить частичный внутри JavaScript для обнаружения событий изменения. Ruby работает на стороне сервера, а JavaScript - на стороне клиента. К тому времени, когда JavaScript будет запущен, ваш Ruby уже будет разобран в обычный HTML.

Лучше всего сделать следующее:

Используйте элемент управления AJAX (есть Prototype/scriptaculous), чтобы обратиться к серверу в событии onchange. Ваш сервер может отправить обратно RJS для обновления других выпадающих элементов, или он может вернуть стандартный JSON, и вы сможете заполнить другие выпадающие элементы вручную в методе onSuccess вызова AJAX.

7
ответ дан 4 December 2019 в 13:47
поделиться