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);