Datepicker无法处理点击事件

时间:2015-03-07 05:12:46

标签: jquery datepicker

我有一个datepicker函数:

$(document).ready(function () {
        $("#StartDate").datepicker({
            dateFormat: 'mm/dd/yy',
            changeMonth: true,
            changeYear: true,
            minDate: '',
            maxDate: '',
            onSelect: function (date) {
                var selectedDate = new Date(date);
                var endDate = new Date(selectedDate.getTime());
                fun();
                $("#EndDate").datepicker("option", "minDate", endDate);
                $("#EndDate").datepicker("option", "maxDate");
            }
        }).css('vertical-align', 'top');
});

上面的代码工作正常。但是,如果我将代码置于文本框中,则单击事件,例如

$(document).ready(function () {
    $("#StartDate").click(function(){
        $(this).datepicker({
          //and the rest......
        });
    })//click
})//ready

然后它不起作用。我究竟做错了什么?我需要在单击文本框时在onSelect datepicker属性中执行某些功能,然后显示日期选择器。提前谢谢。

2 个答案:

答案 0 :(得分:3)

您不需要做任何事情来格式化日期。 DatePicker小部件为您完成。只需使用altFieldaltFormat属性:

演示JSfiddle

$("#myDatePicker").datepicker({
// The hidden field to receive the date
altField: "#dateHidden",
// The format you want
altFormat: "yy-mm-dd",
// The format the user actually sees
dateFormat: "dd/mm/yy",
onSelect: function (date) {
    // Your CSS changes, just in case you still need them
    $('a.ui-state-default').removeClass('ui-state-highlight');
    $(this).addClass('ui-state-highlight');
 }
});

答案 1 :(得分:0)

这不是datepicker的工作方式。继续使用此绑定:

$("#StartDate").datepicker({ });

试试这个:

$("#StartDate").datepicker({ 
    //etc,
    beforeOpen: function(){
        //do your checking here
    },
    onClose: function(){
        //just to show another option
    }
});