2009-08-13 22 views
12

Después de la especificación básica onSelect en el sitio jQuery probé el siguiente código:problema con jQuery selector de fechas 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> 

y no puede conseguir que funcione! Originalmente traté de hacer algo más complicado pero el onSelect simplemente no funcionaba, volví a lo básico y todavía no funcionaba, ¿alguien alguna idea de lo que estoy haciendo mal?

+0

¿Se puede pegar el código HTML donde se crea el selector de fechas ? – Dirk

Respuesta

11

Usted puede tratar de eliminar el segundo $("#datepicker").datepicker() inmediatamente por encima de esa línea, dejando:

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

¡muy fácil! ¡Muchas gracias! –

+0

Dado que esta pregunta fue respondida por última vez, los nombres de los eventos son diferentes. Consulte aquí para ver eventos y ejemplos: http://bootstrap-datepicker.readthedocs.io/en/latest/events.html – Stateful

39

no se está usando la API correctamente. No te lo tomes mal, es confuso al principio.

Ambas líneas están diciendo el widget selector de fechas para inicializar un selector de fechas en un elemento:

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

usted podría quitar el primero, ya que no está haciendo nada, excepto la prevención de la segunda de tener ningún efecto.

Si desea cambiar el valor de una de las opciones después de que ya ha inicializado el widget entonces usted tendría que usar esta API:

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

O, alternativamente, se puede adjuntar un manejador usando jQuery bind función: onSelect

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

$ ("# datepicker"). Datepicker ('destroy') y luego configurar uno nuevo con diferente opciones es otra posibilidad, aunque en este caso, simplemente deshacerse de la primera inicialización. – gnarf

+0

¡muy fácil! ¡Muchas gracias! –

+2

¡GRAN VICTORIA! Su primera respuesta de $ ('# datepicker'). Datepicker ('option', 'onSelect', function() {/ * do stuff * /}); hizo el truco para mí. ¡Muchas gracias! – NovaJoe

0

jQuery del selector de fechas no funciona a veces, pero que sólo puede pasar por alto que llamando a un método de onchange evento de su tipo input.

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

Llame a este método changeDate() como-

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

Must funciona este código cuando se seleccione una fecha:

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

Pruebe todas las variantes y esta fue la única que funciona gracias @hamzeh – Abdullah

+1

Si alguien tiene un problema con los métodos que podrían estar usando usted https: // github.com/eternicode/bootstrap-datepicker así que esta es la forma en que están usando –

+0

'" changeDate "' también funciona para mí. '" option "" onSelect "' y otras variantes no funcionaron. ¡Gracias! – Ghan

Cuestiones relacionadas