jQuery Datepicker UI仅在单击关闭按钮或完成按钮时关闭

时间:2012-09-23 10:02:41

标签: jquery jquery-ui date datepicker

我正在使用jQuery UI Datepicker,..

Datepicker工作正常,但是当我们点击日历外部或点击 Escape 按钮时它会关闭。但是我希望只有当我们点击完成按钮时我的日期选择器才会关闭。

$(".date-picker").datepicker({
    dateFormat: 'mm-yy',
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,

    onclose: function(dateText, inst) {
        var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
        var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
        $(this).val($.datepicker.formatDate('yy-mm', new Date(year, month, 1)));
    }
});

我该怎么做?

2 个答案:

答案 0 :(得分:4)

此解决方案也已发布在jquery DatePicker Done button完美无缺:

$(function() {
    $('.monthYearPicker').datepicker({
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM yy'
    }).focus(function() {
        var thisCalendar = $(this);
        $('.ui-datepicker-calendar').detach();
        $('.ui-datepicker-close').click(function() {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            thisCalendar.datepicker('setDate', new Date(year, month, 1));
        });
    });
});

<强> CSS:

.ui-datepicker-calendar {
    display: none;
}

HTML:

<label for="myDate">Date :</label>
<input name="myDate" class="monthYearPicker">

了解它如何在jsfiddle中发挥作用。

来源: http://develop-for-fun.blogspot.com/2013/08/jquery-ui-datepicker-month-and-year.html

答案 1 :(得分:0)

无法控制关闭datepicker的触发器。您可以获得的最接近的可能是创建内联日期选择器并随意显示/隐藏。但是,内联日期选择器中没有显示“完成”按钮,因为通常不需要隐藏内联日期选择器。这是我得到的最接近的,没有得到hacky:

http://jsfiddle.net/william/c8Kcs/1/

HTML:

<input id="date" /> <button id="done">Done</button>
<div class="date-picker"></div>

JavaScript的:

$(".date-picker").hide().datepicker({
    dateFormat: 'mm-yy',
    changeMonth: true,
    changeYear: true,
    showButtonPanel: true,
    altField: '#date'
});

$('#date').click(function() {
    $(".date-picker").show();
    $('#done').show();
});

$('#done').hide().click(function() {
    $(".date-picker").hide();
    $(this).hide();
});
​
相关问题