2012-02-13 2 views
0

У меня есть приложение, которое использует redbox для ввода данных пользователя. Я пытаюсь добавить в отдельные поля, которые будут динамически обновляться в зависимости от сделанных выборов. Вот вид с полей выбора, который называется по ссылке link_to_remote_redbox:Использование рельсов для обновления html в redbox

<div id="select_div"> 
<%= select_tag "group_select", options_for_select(GROUP_LIST), :onchange =>  remote_function(:url => {:controller => 'webs', :action => 'update_group'}, :with => "'group='+value") %> 
<div id="name" style="display:none"><%= select_tag "select", options_for_select(params[:group], default) %></div> 
</div> 

метод контроллера:

def update_group 
group = params[:group] 
case group 
when "ONE" 
    group = GROUP_ONE 
when "TWO" 
    group = GROUP_TWO 
when "THREE" 
    group = GROUP_THREE 
end 

render :update do |page| 
page.replace_html 'name', "style=\"display:inline\"", :object => group 
end 
end 

Через тестирование я был в состоянии видеть, что метод update_group вызывается, когда первый выбор изменяется, и он отправляет правильную группу, которая должна отображаться во втором поле выбора. По какой-то причине я не могу заставить функцию replace_html выполнить правильную замену и отобразить второй тег select.

Кто-нибудь сделал что-нибудь подобное или у вас есть предложения по другим способам попробовать?

+0

Вы используете старые методы JavascriptHelper для Prototype. Используется ли ваше приложение с помощью Prototype или jQuery? – Substantial

+0

Я считаю, что использую прототип, на что я могу смотреть, чтобы быть уверенным? –

ответ

0

Я смог понять это. Вы спрашиваете о прототипе vs jquery, отправили меня по пути, и я обнаружил, что неправильно использовал метод replace_html. Вместо того чтобы пытаться скрыть div и появиться при первом выборе, я изменил его так, чтобы он загружал нужные теги выбора. Это теперь работает, и поле выбора изменяется правильно в зависимости от того, что выбрано при первом выборе.

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