2012-10-02 14 views
6

Estoy tratando de agregar un desenfoque de evento en la entrada para ocultar un calendario.
El complemento que estoy usando para mostrar el calendario es el siguiente eternicode/bootstrap-datepicker.Ocultar el marcador de fecha en el evento de desenfoque

Aquí está el código fuente http://jsfiddle.net/KLpq7/75/

var inputs = $('.datepicker').datepicker({ 
    autoclose: true 
}); 

inputs.on('blur', function() { 
      console.log($(this)); 
      // I would like to hide just the date picker 
      //$(this).hide(); 
}); 

Respuesta

3
inputs.on('blur', function() { 
     inputs.datepicker('hide'); 
    }); 
+2

Por desgracia, funciona en parte debido a que el selector de fechas está oculto, pero la fecha no se ha rellenado la entrada. –

8

Puede probar esto:

var inputs = $('.datepicker').datepicker({ 
format: 'yyyy-mm-dd', 
autoclose: true}).on('changeDate', function (ev) { 
     $(this).blur(); 
     $(this).datepicker('hide'); 
    }); 

violín: http://jsfiddle.net/KLpq7/82/

+1

Esta es la respuesta correcta y debe marcarse como tal. La respuesta de AntoJs hace que elegir una fecha sea imposible porque se llama al evento de desenfoque antes de que el clic pueda establecer el valor de la fecha en la entrada. – mikeschuld

+0

Si ha resuelto, considere aceptar la respuesta –

1

Trate this violín actualizada. Creo que desde que usabas un selector de clase había algunos conflictos en el controlador de eventos blur. He separado cada selector de calendario por ID y parece funcionar bien ahora.

2

Esto es known bug * - si usa "datepicker" como clase para sus entradas, interferirá con el código datepicker, porque datepicker también es la clase utilizada para el panel de selección. Usar una clase diferente para tus selectores debería solucionar el problema por ahora.

* No hay ningún entradas de puertas abiertas para que en este momento, pero es reconocido como un error menor

Cuestiones relacionadas