J'ai un champ de texte de date que je souhaite seulement parfois à un DatePicker, car j'ai certains de mes propres scripts de traitement de texte qui gèrent des chaînes de dates partielles. L'appel de .remove ou .destroy laisse cependant un comportement de formatage de texte sur le champ de saisie, ce qui convertit ma chaîne "8" en "8/18/2010". Pire encore, si je commence à effacer, le système suppose que, lorsque j'atteindrai "18/8/20", j'aurai besoin d'une nouvelle date. en fait voulait "8/18/2020".
Quel serait le meilleur moyen de supprimer complètement, entièrement, comme si c'était jamais arrivé, le sélecteur de date de ma page ? Je peux aussi l'utiliser s'il ignore complètement et à tout moment le texte que je saisis, mais dans ce cas, je préférerais qu'il apparaisse lors d'un double-clic / d'une image comme bouton, pas toujours.
éditer :
Tout cela se passe dans une grille jqGrid, où le "sélecteur" est une zone de texte sur une colonne de date :
function showPicker(selector) {
$(selector).datepicker({
onClose: function() {
$(selector).datepicker('remove');
// or 'destroy' or $('.datepicker').remove(); or $(this).datepick('remove');
}
});
}
Cela l'empêche de revenir, mais pas de manipuler mon champ de texte. Aucun autre code (à ma connaissance) ne manipule le contenu de ce champ, juste jqGrid qui attend la touche d'entrée pour envoyer les données. En regardant le code généré de la page, le div datepicker est même toujours en bas.
edit2 : J'obtiens exactement le même comportement si je fais cela :
<html>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$(document).ready( function(){
$("#pickle").datepicker({
onClose: function(){
$(this).datepicker('remove');
}
});
});
</script>
<input type="text" id="pickle" />
</body>
</html>
Cela provoque un comportement identique à celui que je vois, mais le changer en 'destroy' fonctionne. aquí mais pas sur ma page. C'est bizarre.