2009-08-13 21 views
12

Seguendo le specifiche onSelect base sul sito di jQuery ho provato il seguente codice:problema con 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> 

E non riesce a farlo funzionare! Originariamente cercavo di far funzionare una cosa più complicata ma il onSelect non funzionava, quindi sono tornato alle origini e ancora non funziona, qualcuno ha idea di cosa sto facendo male ??

+0

Si può incollare il codice html in cui si crea la datepicker ? – Dirk

risposta

11

Si potrebbe provare a rimuovere il secondo $("#datepicker").datepicker() immediatamente sopra quella linea, lasciando:

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

maledettamente facile! Grazie molto! –

+0

Poiché questa domanda ha avuto l'ultima risposta, i nomi degli eventi sono diversi. Vedi qui per eventi ed esempi: http://bootstrap-datepicker.readthedocs.io/en/latest/events.html – Stateful

39

Non stai usando correttamente l'API. Non prenderlo male, all'inizio è fonte di confusione.

Entrambe queste linee stanno dicendo il widget DatePicker per inizializzare un datepicker su un elemento:

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

è possibile rimuovere il primo dato che non sta facendo nulla, se non impedendo il secondo di avere alcun effetto.

Se si desidera modificare il valore di una delle opzioni dopo aver già inizializzato il widget allora si avrebbe bisogno di utilizzare questa API:

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

Oppure, in alternativa, si potrebbe collegare un gestore utilizzando jQuery di bind funzione: onSelect

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

$ ("# datepicker"). Datepicker ('destroy') e poi impostarne uno nuovo con differenti le opzioni sono un'altra possibilità - anche se in questo caso, basta sbarazzarsi della prima inizializzazione. – gnarf

+0

maledettamente facile! Grazie molto! –

+2

GRANDI VINCITE! La tua prima risposta di $ ('# datepicker'). Datepicker ('option', 'onSelect', function() {/ * do stuff * /}); ha fatto solo il trucco per me. Grazie molto! – NovaJoe

0

jQuery di datepicker non funziona a volte, ma si può semplicemente ignorare che chiamando un metodo su onchange caso di vostro tipo input.

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

chiamate questo metodo changeDate() AS

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

Must questo codice lavoro quando selezionare una data:

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

Prova tutte le varianti e questa era l'unica che funziona grazie a @hamzeh – Abdullah

+1

Se qualcuno ha un problema con i metodi che potrebbero a causa di te stai usando https: // github.com/eternicode/bootstrap-datepicker quindi questo è il modo in cui stanno usando –

+0

"changeDate" funziona anche per me. '" option "" onSelect "' e altre varianti non hanno funzionato. Grazie! – Ghan