Я относительно новичок в ROR и хотел бы получить помощь по следующему коду.
Я хотел бы показать div (это называется демография), когда из выпадающего списка сделан определенный выбор («Клиенты»). Если из выпадающего меню выбрана опция, отличная от «Клиенты», я бы хотел, чтобы div demographicsv оставался скрытым.
В настоящее время мой код частично работает. Это показывает и скрывает div; однако, когда я сохраняю страницу и возвращаюсь к ней, div скрывается, даже если в раскрывающемся списке выбран «Клиенты». Это может быть связано с тем, что по умолчанию установлено следующее: display: none.
Есть ли способ убедиться, что поле отображается при загрузке страницы после правильного выбора? И я предполагаю, что способ сделать обратное тоже верно -> div с display: block; остается скрытым, если поле из раскрывающегося списка не соответствует требуемому полю.
Любая помощь будет чрезвычайно признательна. Спасибо, и я искренне ценю ваше время:
мой код (HAML):
= f.select :who, WHO, {}, :onChange => "showDemographics(this)", :prompt => true
#demographics{:style => "display:none;"}
%p.information
please fill out the following demographics.
%div{:class => "label_leftalign field"}
= f.label :age, "Age"
= f.select :age, AGES, :prompt => true
%div{:class => "label_leftalign field"}
= f.label :race,
= f.select :race, RACES, :prompt => true
Javascript
function showDemographics(obj)
{
if(obj[obj.selectedIndex].value == 'Customer')
{
document.getElementById('demographics').style.display = 'block';
}
else
{
document.getElementById('demographics').style.display = 'none';
}
}
EDIT ::
Итак, ключевая проблема заключается в том, что при перезагрузке страницы div остается скрытым, даже если в раскрывающемся списке указано правильное значение. Я полагаю, что это можно решить одним из двух способов: 1. запускать какую-либо проверку при каждой загрузке страницы или 2. файлы cookie.
К сожалению, я не очень хорошо разбираюсь в Javascript или jQuery ... и я никогда не применял куки на сайте и предпочел бы по возможности избегать их использования.
Может ли кто-нибудь помочь мне написать скрипт, который проверяет наличие Клиента в выпадающем меню и соответственно показывает / скрывает div? Спасибо, и спасибо Карлосу Пардилья и М. Сайферу за их помощь.