明らかなことだと確信しているので、これを尋ねることさえ嫌いですが、答えを探すのに何時間も費やしましたが、見つけることができません。
「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) 方法でやろうとしています。ありとあらゆる助けをいただければ幸いです。