我想在日历底部的日期选择器中添加一个“重置”控件 - “关闭”控件的位置。这将使用户能够将与datepicker绑定的输入重置为空白(无日期)。
我无法弄清楚如何编写绑定函数,具体来说,我如何获取绑定到控件的元素?
if (this.displayClear) {
$pop.append(
$('<a href="#" id="dp-clear">' + $.dpText.TEXT_CLEAR + '</a>')
.bind(
'click',
function()
{
c.clearSelected();
//help! reset the value to '': $(this.something).val('')
c._closeCalendar();
}
)
);
}
答案 0 :(得分:21)
这是工作解决方案,只需在调用datepicker之前调用cleanDatepicker()。
function cleanDatepicker() {
var old_fn = $.datepicker._updateDatepicker;
$.datepicker._updateDatepicker = function(inst) {
old_fn.call(this, inst);
var buttonPane = $(this).datepicker("widget").find(".ui-datepicker-buttonpane");
$("<button type='button' class='ui-datepicker-clean ui-state-default ui-priority-primary ui-corner-all'>Delete</button>").appendTo(buttonPane).click(function(ev) {
$.datepicker._clearDate(inst.input);
}) ;
}
}
答案 1 :(得分:16)
我找到了一个更好的解决方案:
$(document).ready(function () {
$(".datepicker").datepicker({
showOn: 'focus',
showButtonPanel: true,
closeText: 'Clear', // Text to show for "close" button
onClose: function () {
var event = arguments.callee.caller.caller.arguments[0];
// If "Clear" gets clicked, then really clear it
if ($(event.delegateTarget).hasClass('ui-datepicker-close')) {
$(this).val('');
}
}
});
});
答案 2 :(得分:7)
这将在将清除数据的Jquery日历上添加清除按钮。
$("#txtDOJ").datepicker({
showButtonPanel: true,
closeText: 'Clear',
onClose: function (dateText, inst) {
if ($(window.event.srcElement).hasClass('ui-datepicker-close')) {
document.getElementById(this.id).value = '';
}
}
});
答案 3 :(得分:6)
将完成标签更改为清除并添加代码以清除
$(document).ready(function () {
$("#startdate").datepicker({
showOn: 'both',
buttonImageOnly: true,
buttonImage: "css/images/calendar.gif",
showButtonPanel: true,
closeText: 'Clear',
onClose: function (dateText, inst) {
$(this).val('');
}
});
});
将取消按钮添加到日历
$("#termdate").datepicker({
showOn: 'both',
buttonImageOnly: true,
buttonImage: "css/images/calendar.gif",
showButtonPanel: true,
beforeShow: function (input) {
setTimeout(function () {
var buttonPane = $(input).datepicker("widget")
.find(".ui-datepicker-buttonpane");
var btn = $('<button class="ui-datepicker-current'
+ ' ui-state-default ui-priority-secondary ui-corner-all"'
+ ' type="button">Clear</button>');
btn.unbind("click").bind("click", function () {
$.datepicker._clearDate(input);
});
btn.appendTo(buttonPane);
}, 1);
}
});
答案 4 :(得分:3)
我正在经历同样的问题,也就是说,没有可用于清空datepicker的选项。然后,我发布了这篇超级有用的评论,并发布了一段精美的代码here:
即使在只读字段上添加清除功能的一种快捷方法是将以下代码添加到现有的datepicker控件中:
}).keyup(function(e) {
if(e.keyCode == 8 || e.keyCode == 46) {
$.datepicker._clearDate(this);
}
});
这将使人们能够突出显示(他们甚至可以在只读字段上),然后使用退格键或删除来使用内部_clearDate
功能删除日期。
答案 5 :(得分:0)
这是独家新闻
我们可以使用默认完成按钮来绑定自定义清除功能。
$("#date_picker").datepicker({minDate:myDate,dateFormat: 'yy-mm-dd',showButtonPanel:true,closeText:'Clear',
beforeShow: function( input ) {
setTimeout(function() {
var clearButton = $(input )
.datepicker( "widget" )
.find( ".ui-datepicker-close" );
clearButton.unbind("click").bind("click",function(){$.datepicker._clearDate( input );});
}, 1 );
}
});
像魅力一样工作。干杯:);)
学分:SébastienRenauld和BehranG BinA