Effacer la valeur de bootstrap-datepicker

j'utilise bootstrap-datepicker d'ici:https://github.com/eternicode/bootstrap-datepicker

version: 2.3.2

j'ai du mal à effacer les valeurs de date du cliqueur de données lorsqu'un bouton est cliqué. J'ai vérifié L'API mais je ne trouve rien sur le nettoyage/réinitialisation du curseur de données. Toute aide est la bienvenue

24
demandé sur user2906420 2014-03-05 15:16:28

8 réponses

vous pouvez utiliser jQuery pour effacer la valeur de votre entrée date.

Par exemple avec un bouton et une saisie de texte comme ceci :

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

Vous pouvez utiliser le .val () fonction de jQuery.

$("#reset-date").click(function(){
    $('#datepicker').val("").datepicker("update");
})
22
répondu Needpoule 2017-09-11 09:41:17

j'ai eu des problèmes similaires et le suivant a fonctionné pour moi:

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

Les deux appels de méthode étaient nécessaires, sinon ça n'a pas été clair.

31
répondu tunny 2014-10-07 10:25:21

la version actuelle 1.4.0 a clearBtn option:

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

en plus d'ajouter un bouton à l'interface, il permet de supprimer la valeur de la boîte d'entrée manuellement.

12
répondu Lu55 2015-09-09 12:54:32

je suis tombé sur ce fil en essayant d'effacer la date déjà fixée. Tentative:

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

produit:

TypeError: t.dpDiv is undefined 
https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js -- Line 8

en pensant qu'il fallait peut-être inclure le origine Datepicker pour bootstrap supprime l'erreur, mais provoque alors l'original composant à apparaître! - c'est bien sûr faux et ne sont pas nécessaires.

en regardant plus loin, le crash de jqueryui est dans:

    /* 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);

et inst.pdDiv n'existe pas.

Enquête plus loin - j'ai réalisé que ce qui était nécessaire était:

        $formControl = $duedate.find("input");
        $formControl.val('');
        $formControl.removeData();

Qui a résolu mon problème. Notez que j'avais aussi besoin de $ formControl.removeData () sinon l'état du widget ne serait pas réinitialisé à l'état initial.

j'espère que cela aide quelqu'un d'autre. : -)

6
répondu JoelParke 2014-11-10 18:29:22

Vous pouvez utiliser cette syntaxe pour réinitialiser votre Bootstrap

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

référence http://bootstrap-datepicker.readthedocs.org/en/latest/methods.html#update

3
répondu Vinie 2015-06-04 11:50:16

en Fait, il est beaucoup plus utile d'utiliser la méthode qui est venu avec la bibliothèque comme ceci $(".datepicker").datepicker("clearDates");

je vous recommandons, vous pouvez toujours jeter un oeil à la documentation de la bibliothèque, voici celui que j'ai utilisé pour cela.

bootstrap-datepicker méthodes de documentation

2
répondu Dimitri Acosta 2015-05-09 19:25:55

je sais qu'il est trop tard pour répondre, mais dans mon scénario ci-dessous le code ne fonctionnait pas.

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

voici ma solution.

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

j'ai effacé la valeur de datepicker d'abord puis j'ai supprimé datepicker et à nouveau réinitialisé datepicker. ses résolu mon problème.

1
répondu Pradeep atkari 2017-04-27 13:39:55

je suis tombé sur ce fil en essayant de comprendre pourquoi les dates n'étaient pas autorisées dans IE7/IE8.

Cela a à voir avec le fait que IE8 et plus anciens nécessitent un second paramètre pour le tableau.prototype.méthode splice (). Voici le code original de bootstrap.datepicker.js:

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

L'ajout du second paramètre a résolu mon problème:

clear: function(){
    this.splice(0,this.length);
},
0
répondu Airn5475 2014-11-03 20:28:47