J'essaie de remplacer mon plugin de datepicker et de mettre en œuvre mon propre datepicker personnalisé. Je place mon code dans un fichier js global afin de le remplacer dès le chargement de la page.
(function($) {
var originalVal = $.fn.datepicker;
$.fn.datepicker = function(val1, val2, val3) {
console.log(val1); // option
console.log(val2); // maxDate
console.log(val3); // 09/06/2017
// var dp = originalVal.clone();
// console.log(dp);
var _options = {
changeYear: true,
changeMonth: true
}
if (val1 == "option") {
_options[val2] = val3
console.log(_options[val2]);
}
else {
_options = $.extend(_options, val1)
}
console.log(_options); //Object { changeYear: true, changeMonth: true, maxDate: Date 2017-09-06T06:52:32.449Z }
return originalVal.call(this, _options);
};
})(jQuery);
Cela fonctionne parfaitement car la page se charge et changeYear et changeMonth est disponible avec la restriction de la date maximale comme 09/06/2017.
Voici le code de ma page :
</head>
<body>
<input type="text" id="pickDate2" >
<input type="text" id="pickDate3" >
<script>
$("#pickDate2").datepicker();
$("#pickDate3").datepicker('option','maxDate',new Date());
$("#pickDate2").change(function(){
var val = $(this).val();
$("#pickDate3").datepicker('option','minDate',Date.parse(val));
})
</script>
</body>
</html>
Maintenant, après le chargement de la page, lorsque le code ci-dessous est exécuté, la date minimum n'est pas définie.
$("#pickDate2").change(function(){
var val = $(this).val();
$("#pickDate3").datepicker('option','minDate',09/03/2017);
})
Lorsque je vérifie dans la console le code de remplacement de mon plugin, les paramètres semblent corrects.
console.log(_options);//Object { changeYear: true, changeMonth: true, minDate: Date 2017-09-03T18:15:00.000Z }
Pour autant que je sache, la fonction d'appel JavaScript ne s'exécute pas la deuxième fois. Je n'ai rien trouvé de concret puisque j'ai fait des recherches sur le web à ce sujet. Je veux que le plugin accepte les paramètres la deuxième fois également.