我什至不想问这个问题,因为我确信这很明显,但我花了几个小时寻找答案却找不到答案。
我有一个使用“slideup”函数的简单 javascript (jquery) 代码。我在我的表单部分使用它来显示或隐藏基于选择的字段。如果我将代码直接放入表单中,它会完美运行。如果我将它放入 assets/javascript 文件夹,它会包含在 application.js 文件中,但不起作用。
为了测试,我还输入了一个 javascript 警报,只是为了查看它是否正在加载,并且警报会触发。我这辈子都想不通。
这是位于我的 app/assets/javascript/form.js 中的 javascript:
$('#Postponement').change(function () {
if ($("#NewWeddingDate").is(":hidden")) {
$("#NewWeddingDate").show("slow");
} else {
$("#NewWeddingDate").slideUp();
}
})
$(function(){
alert('got to application.js!');
})
这是相关的表单代码(我使用的是 Formtastic):
<div id='Postponement' >
<%= f.input :Postponement, :label => "Will the wedding be postponed?", :input_html => { :id => 'Postponement' }, :as => :select, :include_blank => false, :collection => ['Yes', 'No'], :selected => 'Yes' %> <br />
</div>
<div id = 'NewWeddingDate' >
<%= f.input :NewWeddingDate, :label => "The new wedding date is:", :input_html => { :id => 'NewWeddingDate' }, :as => :date_select, :start_month => Time.now.month, :start_year => Time.now.year, :end_year => Time.now.year + 10, :order => [:month, :year] %><br />
</div>
我的 application.html.erb 包含<%= javascript_include_tag "application" %>
并且如果我将该 javascript 代码直接添加到 _form.html.erb 文件中,它可以正常工作。我绝对是这方面的新手,所以我确信这很明显。我可以将代码留在 _form.html.erb 中,但我正在尝试以正确的(Rails)方式做事。任何和所有的帮助将不胜感激。