清除bootstrap-datepicker的值

时间:2014-03-05 11:16:28

标签: javascript twitter-bootstrap datepicker

我在这里使用bootstrap-datepicker:https://github.com/eternicode/bootstrap-datepicker

版本:2.3.2

单击按钮时,我无法清除日期选择器的日期值。我检查了API,但在清除/重置datepicker时无法找到任何内容。欢迎任何帮助

10 个答案:

答案 0 :(得分:31)

我遇到了类似的麻烦,以下内容对我有用:

$('#datepicker').val('').datepicker('update');

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

答案 1 :(得分:26)

您可以使用jQuery清除日期输入的值。

例如,按钮和文本输入如下:

<input type="text" id="datepicker">
<button id="reset-date">Reset</button>

您可以使用jQuery的.val()函数。

$("#reset-date").click(function(){
    $('#datepicker').val("").datepicker("update");
})

答案 2 :(得分:18)

当前版本1.4.0有clearBtn option

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

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

答案 3 :(得分:6)

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

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

认为可能需要包含original Datepicker for bootstrap的人删除错误,但随后会出现原始的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(),否则小部件的状态不会重新初始化为初始状态。

我希望这有助于其他人。 : - )

答案 4 :(得分:4)

实际上使用库中附带的方法更有用$(".datepicker").datepicker("clearDates");

我建议你总是看一下图书馆的文档,这是我用过的文档。

bootstrap-datepicker methods documentation

答案 5 :(得分:3)

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

$('#email').keyup(function() {
    var INPUT = $(this).val();
    var email = new RegExp('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$');
    if (email.test(INPUT)) {
        console.log('inside the if');
    }
    console.log('Outside the if');
});

参考http://bootstrap-datepicker.readthedocs.org/en/latest/methods.html#update

答案 6 :(得分:1)

我知道回答为时已晚,但在我的情况下,代码无效。

 $('#datepicker').val("");
 $('#datepicker').val('').datepicker('update');
 $('#datepicker').datepicker('update','');

这是我的解决方案。

 $('#datepicker').val('').datepicker('remove').datepicker();

我首先清除了datepicker值,然后删除了datepicker并再次重新初始化了datepicker。它解决了我的问题。

答案 7 :(得分:0)

我试图找出IE7 / IE8中没有清除日期的原因时遇到了这个帖子 它与IE8和更旧版本需要Array.prototype.splice()方法的第二个参数这一事实有关。 这是bootstrap.datepicker.js中的原始代码:

clear: function(){
    this.splice(0);
},

添加第二个参数解决了我的问题:

clear: function(){
    this.splice(0,this.length);
},

答案 8 :(得分:0)

您必须采用这种方式:

$('#datepicker').datepicker('clearDates');

答案 9 :(得分:0)

我找到了最好的扳手,它对我有用。 清除bootstrap-datepicker的值:

$('#datepicker').datepicker('setDate', null);

为boostrap-datepicker添加值:

$('#datepicker').datepicker('setDate', datePicker);