我正在使用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)));
}
});
我该怎么做?
答案 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();
});