jQueryUI datepicker小部件在小部件初始化后添加'onClose'函数

时间:2013-03-07 11:06:52

标签: jquery jquery-ui datepicker

假设我有一个#date字段。起初我用一些选项初始化它(它们目前并不重要):

$('#date').datepicker(options);

然后,如果我尝试添加onClose函数,我会这样做:

$('#date').datepicker({onClose: function(dateText, inst){console.log("Hello World");}});

Howerver,这会覆盖之前设置的选项。假设我没有访问这些选项 - 初始化datepicker,设置选项,现在我需要添加函数onClose。怎么做?我试过.datepicker('option','onClose',function(){});没有效果。

5 个答案:

答案 0 :(得分:6)

尝试

$('#date').datepicker( 'option' , 'onClose', function() {} );

答案 1 :(得分:5)

试试这个:

$('#date').datepicker();
...
$('#date').datepicker("option", {
  onClose: function(dateText, inst){console.log("Hello World");}
});

当然这会覆盖之前设置的onClose函数。 来源:jQuery forum post

答案 2 :(得分:0)

试试这个:

$('#date').datepicker().bind('onClose',function(){
    console.log("Hello World");
});

答案 3 :(得分:0)

在初始化过程中将您的on-close功能定义为您的一个选项。这对我有用。

$('#date').datepicker({
    dateFormat: "dd/mm/yy",
    onClose: function(dateText, inst){console.log("Hello World");}
});

答案 4 :(得分:0)

我也面临同样的问题,即旧的关闭功能正在被取代。 经过大量搜索后,我已经实现了自己的功能来处理这个问题。以下是代码段

function addCloseFunctionToDatePicker(id, funHandler) {
    var $datePicker=$('#' + id);
    var prevhandler = $datePicker.datepicker('option', 'onClose');
    $datePicker.datepicker('option', {
        onClose: function (dateText, inst) {                    
            if (prevhandler) {
                prevhandler(dateText, inst);
            }
           funHandler(dateText, inst);                
        }            
    });    
}

通话机制:

 addCloseFunctionToDatePicker('myDatePicker', function(){ alert("I'm next method"); });