Javascript 刷新时显示隐藏的div

Javascript 刷新时显示隐藏的div,javascript,jquery,ruby-on-rails,drop-down-menu,show-hide,Javascript,Jquery,Ruby On Rails,Drop Down Menu,Show Hide,我很难弄明白如何使我的代码正常工作。我目前有一个加载时隐藏的div,一旦从dropbox中进行选择,它就会改变 从dropbox中选择(美国)后,将显示隐藏的div,用户可以继续填写表单 当用户保存表单,然后返回到该页面-->div不再可见时(我认为这是因为其固有的显示值设置为“none;”),我的问题就会出现。用户必须再次从下拉列表(美国)中选择适当的值才能查看div 我想知道如果dropbox中的值正确,如何使div在页面刷新时可见。我正在用HAML编程,所有选项值(美国、国际)都位于con

我很难弄明白如何使我的代码正常工作。我目前有一个加载时隐藏的div,一旦从dropbox中进行选择,它就会改变

从dropbox中选择(美国)后,将显示隐藏的div,用户可以继续填写表单

当用户保存表单,然后返回到该页面-->div不再可见时(我认为这是因为其固有的显示值设置为“none;”),我的问题就会出现。用户必须再次从下拉列表(美国)中选择适当的值才能查看div

我想知道如果dropbox中的值正确,如何使div在页面刷新时可见。我正在用HAML编程,所有选项值(美国、国际)都位于constants.rb文件中

我相信这可以通过cookies(如果可能的话我希望避免)或者通过页面加载上的某种jscript/jquery验证来实现。。。不幸的是,我对这两件事都不熟悉,所以我恳请任何人帮忙

我真诚地感谢你抽出时间来帮助我。谢谢大家!

HAML代码:

= f.select :location, LOCATIONS, {}, :onChange => "showStates(this)", :prompt => true

#states_div{:style => "display:none;"}
  %div{:class => "label_leftalign field"}
    = f.label :state, "State"
    = f.select :state, STATES, :prompt => true
Javascript:

功能显示状态(obj)


您可以通过在页面加载时运行showStates(this)来实现这一点。只需将以下内容添加到模板底部:

:javascript
  window.onload = function() {
    select_location = document.getElementById('<id of select tag generated for location>')
    if(select_location[select_location.selectedIndex].value == 'United States')
    {
      document.getElementById('states_div').style.display = 'block';
    }
    else
    {
      document.getElementById('states_div').style.display = 'none';
    }
  };
:javascript
window.onload=函数(){
选择_location=document.getElementById(“”)
如果(选择位置[选择位置.选择索引].value==“美国”)
{
document.getElementById('states_div').style.display='block';
}
其他的
{
document.getElementById('states_div')。style.display='none';
}
};

然后,如果美国以表格的形式出现,它将显示它。

首先非常感谢您的回复!我知道这将是高质量的,因为你第一次帮助我:]不幸的是,我似乎无法在HAML中实现这一功能。。。在添加代码之前,是否需要添加:javascript或:plain标题?此外,是否应将代码添加到身体或头部?再次感谢你的帮助@斯洛伐克语:是的,您需要在上面使用
:javascript
:plain
过滤器,并将此代码缩进HAML的下面。另外,你可以把它放在你的身体底部,标记编辑:解决它。。。很抱歉忘记将Id添加到select标记!非常感谢克里斯&我被抢了!
:javascript
  window.onload = function() {
    select_location = document.getElementById('<id of select tag generated for location>')
    if(select_location[select_location.selectedIndex].value == 'United States')
    {
      document.getElementById('states_div').style.display = 'block';
    }
    else
    {
      document.getElementById('states_div').style.display = 'none';
    }
  };