2

jQuery datepickerを使用してカスタムdatepickerを作成しましたが、これは完璧に機能します。onSelectイベントにいくつかの機能が必要で、それをオーバーライドしたい場合のシナリオがいくつかあります。ただし、他の設定を最初の日付ピッカーから変更する必要はありません。

これが私のコードサンプルです:

$('#start_date.datepicker, #end_date.datepicker').attachCustomDatepicker();

$('#start_date.datepicker').datepicker({ 
      onSelect: function(dateValue, inst) { 
             $('#end_date.datepicker').datepicker("option", "minDate", dateValue); 
      } 
});
4

1 に答える 1

1

これは不可能なので、回避策を考えます。関数をパラメーターとしてカスタムjQuery関数に渡します。これは、日付ピッカーを作成するためのコードです。

var onSelectFunction = function(dateValue){
        $('#end_date.datepicker').datepicker("option", "minDate", dateValue);
    }
    options.onSelect = onSelectFunction;
    $('#start_date.datepicker, #end_date.datepicker').attachCustomDatepicker(options);

これは私のカスタム関数のプレビューです:

$.fn.attachCustomDatepicker = function(options) { 

    var defaultOptions = {
        someDefaultCustomParamsHere: ,
        onSelect: null
    }

    var onSelectFunction = function(params){ return false; }

    if (typeof options == 'object') {
            options = $.extend(defaultOptions, options);
    } else {
            options = defaultOptions;
    }

    if(!options.onSelect){
        options.onSelect = onSelectFunction;
    }

    $(this).datepicker( "destroy" );

    $(this).datepicker({
         onSelect: function (dateValue, inst) {
            options.onSelect(dateValue);
        }
    }
}
于 2012-10-08T14:00:47.503 に答える