web-dev-qa-db-fra.com

problème avec jquery datepicker onselect

En suivant les spécifications de base onSelect sur le site jQuery, j'ai essayé le code suivant:

<!DOCTYPE html>
<html>
<head>
  <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.datepicker.js"></script>
  <script type="text/javascript">
  $(document).ready(function(){
    $("#datepicker").datepicker();


$('#datepicker').datepicker({
   onSelect: function(dateText, inst) { alert("Working"); }
});



  });

  </script>
</head>
<body style="font-size:62.5%;">

<div type="text" id="datepicker"></div>

</body>
</html>

Et n'arrive pas à le faire fonctionner! A l'origine, j'essayais de trouver une solution plus compliquée, mais le système onSelect ne fonctionnait tout simplement pas. Je suis donc retourné à l'essentiel et je ne travaille toujours pas. Quelqu'un a-t-il une idée de ce que je fais mal ??

12
alex

Vous pouvez essayer de supprimer la deuxième $("#datepicker").datepicker() immédiatement au-dessus de cette ligne, en laissant:

$(document).ready(function(){
    $('#datepicker').datepicker({ onSelect: function(dateText, inst) { alert("Working"); } });
});
12
VoteyDisciple

Vous n'utilisez pas correctement l'API. Ne le prends pas mal, c'est déroutant au début.

Ces deux lignes indiquent au widget datepicker d'initialiser un datepicker sur un élément:

$("#datepicker").datepicker();
$('#datepicker').datepicker({
   onSelect: function(dateText, inst) { alert("Working"); }
});

Vous pouvez supprimer le premier car il ne fait rien sauf empêcher le second d'avoir un effet.

Si vous souhaitez modifier la valeur de l'une des options après avoir initialisé le widget, vous devez utiliser cette API:

$('#datepicker').datepicker('option', 'onSelect', function() { /* do stuff */ });

Ou bien, vous pouvez attacher un gestionnaire en utilisant la fonction bind de jQuery:

$('#datepicker').bind('onSelect', function() { /* do stuff */ });
41
Ken Browning

Ce code doit-il fonctionner lorsque vous sélectionnez une date:

$("#datepicker").datepicker({
    dateFormat: 'dd/mm/yy'
}).on("changeDate", function (e) {
    alert("Working");
});
17
hamzeh.hanandeh

onSelect de jQuery datepicker ne fonctionne pas parfois mais vous pouvez simplement le contourner en appelant une méthode sur l'événement onchange de votre type input.

function changeDate() {
   $("#datepicker").datepicker(
        "change",
        { 
            alert("I am working!!");
        }
    );
}

Appelez cette méthode changeDate() comme-

<div type="text" id="datepicker" onchange ="javascript:changeDate();" />
0
Naveen Kumar