Set initial value with wickedpicker (wickedpicker で初期値を設定する)

時間登録フォームのtimepickerを導入したかったのですが、見た目上一番よかったのが「wickedpicker」だったので実装していたのですが、初期値の入れ方がわからない。編集の際に既存で入っていたデータを全て上書きしてjsで設定した初期値だけが反映されてしまい、動的に変更ができなかった。。

結論からいうと、この記事を参考にしたら動きました。
WickecdPickerで複数入力ボックスの移動時ダイアログをhideする – RUGOH

# coffeeScript で書いてます。

  $('.timepicker').each ->
    default_time = $(this).val()
    if default_time is ""
      default_time = "10:00" # 値がなければ設定する

    options = # オプション
      now: $(this).val() # 既存の値をinputのval()から取得し、timepickerの初期値にする
      minutesInterval: 10
      twentyFour: true
      title: "時間"
    $(this).wickedpicker(options)

ここにたどり着くまでに、いくつか調査したので記載します。

v0.4.1 なら初期値設定できるよ、というissueを発見

github.com やってみたけど動かない!><


timepickerのオプションを紹介する

var options = {
 now: "12:35", //hh:mm 24時間形式で記載、初期値は現在時刻(hh:mm、コロンが大文字だと動かない可能性あり)
 twentyFour: false, //24時間表記を有効にする(初期値:false => 12時間表記)
 upArrow: 'wickedpicker__controls__control-up', //上矢印のスタイルを指定する
 downArrow: 'wickedpicker__controls__control-down', //下矢印のスタイルを指定する
 close: 'wickedpicker__close', //閉じるのスタイルを指定する
 hoverState: 'hover-state', //The hover state class to use, for custom CSS
 title: 'Timepicker', // Wickedpickerのタイトル
 showSeconds: false, //秒を表示する(初期値:false)
 secondsInterval: 1, //秒の間隔を変更します。(初期値:1)
 minutesInterval: 1, //分の間隔を変更します。(初期値:1)
 show: null, //Wickedpickerが表示されたときに呼び出される関数
 clearable: false, //フォーム内に時間を「×」で削除するボタンを表示させるか?  };

$('.timepicker').wickedpicker(options);