【发布时间】:2011-08-03 23:46:19
【问题描述】:
我对 ROR 比较陌生,希望对以下代码有所帮助。
当从下拉列表中进行特定选择(“客户”)时,我想显示一个 div(称为人口统计)。如果从下拉列表中选择了“客户”以外的选项,我希望人口统计 div 保持隐藏状态。
目前,我的代码部分工作。它显示和隐藏 div;但是,当我保存页面并返回它时,即使在下拉列表中选择了“客户”,div 也会被隐藏。这可能是因为默认设置是:display:none。
有没有办法确保在做出正确选择后,该字段在页面加载时显示?而且我想有一种方法可以使相反的结果也成立-> 一个带有 display:block 的 div;如果下拉列表中的字段与必填字段不匹配,则保持隐藏状态。
任何帮助将不胜感激。谢谢你,我真诚地感谢你的时间:
我的代码 (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';
}
}
编辑:: 好的,所以关键问题是在页面重新加载时,即使下拉框中的值正确,div 仍然隐藏。我想这可以通过以下两种方法之一来解决:1. 每次加载页面时运行某种验证或 2. cookie。
不幸的是,我不太精通 Javascript 或 jQuery……而且我从未在网站上实现过 cookie,并且如果可能的话,我宁愿避免使用它们。
谁能帮我编写一个脚本来验证下拉菜单中是否存在客户并相应地显示/隐藏一个 div?谢谢,感谢 Carlos Pardilla 和 M. Cypher 迄今为止的帮助。
【问题讨论】:
标签: javascript jquery ruby-on-rails drop-down-menu show-hide