2009-08-13 14 views
12

Im Anschluss an dem Grunde onSelect spec auf der jQuery-Website habe ich versucht, den folgenden Code:Problem mit 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> 

Und kann es nicht an der Arbeit! Ursprünglich versucht, eine kompliziertere Sache zu arbeiten, aber die onSelect war einfach nicht funktioniert, also ging ich zurück zu den Grundlagen und immer noch nicht arbeiten, jemand eine Ahnung, was ich falsch mache?

+0

Können Sie Ihre HTML-Code einfügen, wo Sie die Datumsauswahl erstellen ? – Dirk

Antwort

11

Sie könnten versuchen, die zweite $("#datepicker").datepicker() unmittelbar oberhalb dieser Linie zu entfernen, so dass:

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

verdammt so einfach! Danke vielmals! –

+0

Da diese Frage zuletzt beantwortet wurde, sind die Ereignisnamen unterschiedlich. Sehen Sie hier für Ereignisse und Beispiele: http://bootstrap-datepicker.readthedocs.io/en/latest/events.html – Stateful

39

Sie sind nicht die api funktioniert nicht richtig. Nimm es nicht schlecht, es ist zunächst verwirrend.

Beiden Linien erzählen den Datumsauswahl-Widget einen Datepicker auf einem Element zu initialisieren:

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

Sie könnten die ersten entfernen, da es etwas zu tun, ist nicht außer die zweiten verhindern jegliche Wirkung.

Wenn Sie den Wert eines der Optionen zu ändern, nachdem Sie bereits das Widget initialisiert haben, dann würden Sie diese api verwenden müssen:

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

oder alternativ Sie einen Handler mit jQuery anhängen könnte bind Funktion:

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

$ ("# datepicker"). Datepicker ('zerstören') und dann ein neues mit anderen einrichten Optionen ist eine andere Möglichkeit - obwohl in diesem Fall nur die erste Initialisierung loszuwerden. – gnarf

+0

verdammt so einfach! Danke vielmals! –

+2

BIG WIN! Deine erste Antwort von $ ('# datepicker'). Datepicker ('option', 'onSelect', function() {/ * tu stuff * /}); hat den Trick für mich gemacht. Danke vielmals! – NovaJoe

0

jQuery Datepicker picker~~POS=HEADCOMP ist onSelect manchmal nicht funktionieren, aber Sie können umgehen es nur durch eine Methode auf onchange Ereignis Ihrer input Typ aufrufen.

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

Rufen Sie diese changeDate() Methode as-

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

muss dieser Code funktioniert, wenn Wählen Sie ein Datum:

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

Probieren Sie alle Varianten aus und dies war die einzige, die funktioniert @hatheh – Abdullah

+1

Wenn jemand ein Problem mit Methoden, die möglicherweise von Ihnen verwenden, verwenden https: // github.com/eternicode/bootstrap-datepicker das ist also die Art und Weise, wie sie arbeiten –

+0

'" changeDate "' funktioniert auch für mich. '" Option "" onSelect "' und andere Varianten haben nicht funktioniert. Vielen Dank! – Ghan