好的,我真的很沮丧,试着看看有什么事情发生。我在app / views / tasks / _form.html.erb文件中内嵌了所有内容,因此rails找不到js应该没有任何问题。
我有一个按钮......
<input type=button value="toggle foo" onclick="showHide('toDate');">
在我的div ...
<div id="toDate">
To Date
<%= text_field_tag "to_date" %>
</br>
Days to Exclude
<% Date::DAYNAMES.each_with_index do |day_name, wday| %>
<% if day_name == "Sunday" || day_name == "Saturday" %>
<%= check_box_tag "ignored_days[]", wday, true %>
<% else %>
<%= check_box_tag "ignored_days[]", wday %>
<% end %>
<%= day_name %>
<% end %>
</div>
然后是js ......
<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>
想法?
答案 0 :(得分:0)
你有没有包含jQuery?
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
您还希望在页面加载时隐藏toDate。将它包围在一个函数中,如下所示:
$(function() {
$('#toDate').hide();
})
答案 1 :(得分:0)
您必须在呈现HTML后执行代码,您可以通过执行以下操作来实现:
$(document).ready(function(){
$('#toDate').hide();
});
确保在您的布局中导入jQuery和资产文件。
答案 2 :(得分:0)
如果您确定包含了jQuery,请确保您在就绪块上的jQuery文档中运行代码,如下所示:
$(function(){
$('#toDate').hide();
});
另请注意,新版本的rails包含turbolinks,它会部分破坏jQuery的document.ready事件。为了避免这种情况,您可以拦截turbolinks事件或包括jquery.turbolinks,如下所述:https://github.com/rails/turbolinks