ハマったこと
bootstrap3-datetimepicker-rails
を使うことで、railsでは簡単に日付カレンダーを作成することができる。
test.html.ruby
f.text_field :date, label: true, class: "form-control datetimepicker"
すると、id = test_date
(id = モデル名_カラム名)というように、formに独自のidが出来上がる。
ならこのidを指定してjs側でdatetimepicker
を操作すればいいのではないか?と思い以下の様に書いた。
test.js
$(function() {
$("#text_date").datetimepicker({
minDate: new Date() //今日の日付から選択可
})
});
しかし、css
は操作できたものの、datetimepicker
だけが操作できない。
app/assets/javascripts/application.js
// = require moment
// = require bootstrap-datetimepicker
ここではしっかりとbootstrap3-datetimepicker-rails
が読み込まれている。
解決策
formで新しくidを指定し、jsでそのidを操作する
test.html.ruby
f.text_field :date, label: true, class: "form-control", id: "test_datetimepicker"
test.js
$(function() {
$("#test_datetimepicker").datetimepicker({
minDate: new Date() //今日の日付から選択可
})
});
datetimepickerクラスを削除し、新たにidを指定。それをjsで操作したら無事解決しました。
原因はなんだったのか。
datetimepicker
クラスを指定してdatetimepicker
メソッドでいじってる場所があり、多分そっちの方が読み込まれてしまっているのでは?
と推測してるので、意見いただけると幸いです。。
app/assets/javascripts/datetimepicker.js.coffee
$('.datetimepicker').datetimepicker({
..........