CodeLab技術ブログ

プログラミング技術まとめ

jquery logo

daterangepickerで複数のフォーム一つのスクリプト管理する

bootstrap-daterangepicker でいい感じに1つのスクリプトで複数のフォームで動くようにする方法。
https://github.com/dangrossman/daterangepicker

スポンサードリンク

こんな感じなんですが・・問題が

最小構成で大体以下のような感じ書きますが…

    moment.locale('ja');
    $('.datepicker').daterangepicker({
        timePicker: false,
        singleDatePicker: true,
        //autoUpdateInput: false, //空白許可
        format: 'YYYY-MM-DD'
    });

空白を許可しない場合はこれでいいんですが、空白を許可したい場合はautoUpdateInput: falseを設定する必要があります。
ただし、この場合はコールバックでフォームに設定値を書き込む必要があり、こんな感じになるかとおもいます。

    moment.locale('ja');
    $('.datepicker').daterangepicker({
        timePicker: false,
        singleDatePicker: true,
        //autoUpdateInput: false, //空白許可
        format: 'YYYY-MM-DD'
    },
    function (date) {
                $('.datepicker').val(date.format('YYYY/MM/DD'));
       }
    );

これだと、フォーム1つに対して1つづつ書かないといけないので面倒です。
ということで

    function callback(date){
        $(this.element).val(date.format('YYYY-MM-DD'));
    }
    moment.locale('ja');
    $('.datepicker').daterangepicker({
        timePicker: false,
        singleDatePicker: true,
        autoUpdateInput: false, //空白許可
        format: 'YYYY-MM-DD'
    },callback);

これでOK。

スポンサードリンク

コメントは受け付けていません。