繁体   English   中英

清除 bootstrap-datepicker 的值

[英]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');

两个方法调用都需要,否则不清楚。

当前版本 1.4.0 有clearBtn选项

$('.datepicker').datepicker({
    clearBtn: true
});

除了向界面添加按钮外,它还允许手动从输入框中删除值。

我在尝试清除已经设置的日期时遇到了这个线程。 尝试:

$('#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");

我建议您始终查看库的文档,这是我用于此目的的文档。

bootstrap-datepicker 方法文档

您可以使用此语法来重置引导日期选择器

$('#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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM