2009-08-13 10 views
12

Après la spécification onSelect de base sur le site jquery j'ai essayé le code suivant:avec jquery datepicker onselect

<!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 ne peut pas le faire fonctionner! A l'origine essayé d'obtenir une chose plus compliquée au travail, mais l'onSelect ne fonctionnait tout simplement pas alors je suis retourné à l'essentiel et ne fonctionne toujours pas, n'importe qui une idée de ce que je fais mal ??

+0

Pouvez-vous coller votre code html où vous créez le datepicker ? – Dirk

Répondre

11

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

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

sacrément facile! Merci beaucoup! –

+0

Depuis la dernière réponse à cette question, les noms des événements sont différents. Voir ici pour les événements et les exemples: http://bootstrap-datepicker.readthedocs.io/en/latest/events.html – Stateful

39

Vous n'êtes pas en utilisant l'api correctement. Ne le prenez pas mal, c'est déroutant au début.

Ces deux lignes racontent le widget datepicker pour 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 quelconque effet.

Si vous voulez changer la valeur de l'une des options une fois que vous avez déjà initialisé le widget que vous aurez alors besoin d'utiliser ce api:

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

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

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

$ ("# datepicker"). Datepicker ('détruire'), puis en créer un nouveau avec différents options est une autre possibilité - bien que dans ce cas, il suffit de se débarrasser de la première initialisation. – gnarf

+0

sacrément facile! Merci beaucoup! –

+2

GROS GAGNANTS! Votre première réponse de $ ('# datepicker'). Datepicker ('option', 'onSelect', function() {/ * faire des trucs * /}); fait juste l'affaire pour moi. Merci beaucoup! – NovaJoe

0

onSelect 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() AS-

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

Doit fonctionner ce code lorsque sélectionnez une date:

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

Essayez toutes les variantes et ce fut le seul qui fonctionne grâce @hamzeh – Abdullah

+1

Si quelqu'un ayant un problème avec les méthodes qui pourraient à cause de vous utilisez https: // github.com/eternicode/bootstrap-datepicker donc c'est la façon dont ils utilisent –

+0

'" changeDate "' fonctionne pour moi aussi. '" option "" onSelect "' et les autres variantes ne fonctionnaient pas. Merci! – Ghan