我对此非常绝望和沮丧:如何在我的表单中隐藏一个或多个div(Ruby on Rails)?
我浏览了论坛并尝试了以下所有内容而没有运气:
我在部分视图_form.html.erb
中尝试了这个 <div id="foo">foo</div>
<a href="#" onclick="Element.toggle('foo'); return false;">toggle foo</a>
我试过
<div id="foo">foo</div>
<%= link_to_function('toggle foo', "Element.toggle('foo')") %>
我试过
<div id="foo" class=foo_class>foo</div>
<a href="#" onclick="$$('.foo_class').each(Element.toggle);">toggle foo</a>
我试过
<a href="javascript:void(0);" onclick="showHide('foo');">toggle foo</a>
其中showHide(elementId)定义如下
<script language="javascript" type="text/javascript">
function showHide(elementId) {
if (document.getElementById) {
var element = document.getElementById(elementId);
if (element.style.visibility == 'hidden') {
element.style.visibility = 'visible';
} else if (element.style.visibility == 'visible') {
element.style.visibility = 'hidden';
}
}
}
</script>
我还尝试使用display none / block相同的showHide函数,而不是隐藏可见性隐藏/可见
我在layouts / application.html.erb
的head部分中有这一行 <%= javascript_include_tag :defaults %>
我在论坛上发现的这些解决方案都不适合我。
那么,我在这里错过了什么?为什么所有其他解决方案都被证明有效仍然不适合我?
答案 0 :(得分:2)
我使用此
解决了我的问题<input type=button value="toggle foo" onclick="showHideDiv('foo');">
感谢大家的帮助。
答案 1 :(得分:1)
如果元素的可见性为“”(意思是未设置,这是默认值),则不会对showHide执行任何操作。这可能是为什么这种方法不起作用的原因。转动一个不可见的物体(它仍会占用你的布局中的空间)或隐藏它(这将使它不占用任何空间)之间也存在差异。
这是做什么的?:
$('foo').toggle();
或
$('foo').invoke('toggle');
也许您正在使用旧的jQuery库。