[英]Clear the value of bootstrap-datepicker
我从这里使用 bootstrap-datepicker: https : //github.com/eternicode/bootstrap-datepicker
版本:2.3.2
单击按钮时,我无法清除日期选择器的日期值。 我已经检查了 API,但在清除/重置日期选择器时找不到任何内容。 欢迎任何帮助
您可以使用 jQuery 清除日期输入的值。
例如有一个按钮和一个像这样的文本输入:
<input type="text" id="datepicker">
<button id="reset-date">Reset</button>
您可以使用 jQuery 的 .val() 函数。
$("#reset-date").click(function(){
$('#datepicker').val("").datepicker("update");
})
我遇到了类似的问题,以下对我有用:
$('#datepicker').val('').datepicker('update');
两个方法调用都需要,否则不清楚。
我在尝试清除已经设置的日期时遇到了这个线程。 尝试:
$('#datepicker').val('').datepicker('update');
产生:
TypeError: t.dpDiv is undefined
https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js -- Line 8
认为可能需要为引导程序包含原始 Datepicker会消除错误,但随后会导致原始 Datepicker 小部件出现! - 所以这显然是错误的,不需要。
进一步看,jqueryui 的崩溃在于:
/* Generate the date picker content. */
_updateDatepicker: function(inst) {
this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
datepicker_instActive = inst; // for delegate hover events
inst.dpDiv.empty().append(this._generateHTML(inst));
this._attachHandlers(inst);
并且 inst.pdDiv 不存在。
进一步调查 - 我意识到需要的是:
$formControl = $duedate.find("input");
$formControl.val('');
$formControl.removeData();
这解决了我的问题。 注意我还需要 $formControl.removeData() 否则小部件的状态不会重新初始化为初始状态。
我希望这对其他人有帮助。 :-)
实际上,使用像这样$(".datepicker").datepicker("clearDates");
这样的库附带的方法更有用$(".datepicker").datepicker("clearDates");
我建议您始终查看库的文档,这是我用于此目的的文档。
您可以使用此语法来重置引导日期选择器
$('#datepicker').datepicker('update','');
参考http://bootstrap-datepicker.readthedocs.org/en/latest/methods.html#update
我知道现在回答为时已晚,但在我的场景中,下面的代码不起作用。
$('#datepicker').val("");
$('#datepicker').val('').datepicker('update');
$('#datepicker').datepicker('update','');
这是我的解决方案。
$('#datepicker').val('').datepicker('remove').datepicker();
我先清除了 datepicker 值,然后删除了 datepicker 并再次重新初始化 datepicker。 它解决了我的问题。
我找到了最好的答案,它对我有用。 清除 bootstrap-datepicker 的值:
$('#datepicker').datepicker('setDate', null);
为 boostrap-datepicker 添加价值:
$('#datepicker').datepicker('setDate', datePicker);
我在试图弄清楚为什么在 IE7/IE8 中没有清除日期时遇到了这个线程。
这与 IE8 及更早版本需要 Array.prototype.splice() 方法的第二个参数有关。 这是 bootstrap.datepicker.js 中的原始代码:
clear: function(){
this.splice(0);
},
添加第二个参数解决了我的问题:
clear: function(){
this.splice(0,this.length);
},
你必须这样做:
$('#datepicker').datepicker('clearDates');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.