Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Deshabilitar fecha en DataPicker

Estas en el tema de Deshabilitar fecha en DataPicker en el foro de Frameworks JS en Foros del Web. Hola a todos, necesito su ayuda. Tengo un calendario en datepicker que permite al usuario seleccionar una fecha pero me hace falta deshabilitar los días ...
  #1 (permalink)  
Antiguo 10/04/2012, 09:46
 
Fecha de Ingreso: abril-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 1
Pregunta Deshabilitar fecha en DataPicker

Hola a todos, necesito su ayuda. Tengo un calendario en datepicker que permite al usuario seleccionar una fecha pero me hace falta deshabilitar los días posteriores al actual en cuanto a día, mes y año. Ejemplo de esto es que si hoy es 10-04-2012 a partir de ese día todos los días, meses y años posteriores esten deshabilitados y así sucesivamente al pasar los días.
Muchas gracias, Su ayuda es imprescindible para mi . Gracias….
  #2 (permalink)  
Antiguo 10/04/2012, 12:38
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Deshabilitar fecha en DataPicker

1.- Es Inhabilitar :P

2.- .datepicker() tiene la opción maxDate: http://jqueryui.com/demos/datepicker/#option-maxDate

Sería así:

Código Javascript:
Ver original
  1. $( ".selector" ).datepicker({ maxDate: '+0d' });

Es decir, 0 días hacia adelante a partir de hoy. Tené en cuenta que esta fecha es obtenida de la computadora del cliente y puede estar mal.

Ejemplo:
Código HTML:
Ver original
  1. <!doctype html>
  2.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  3.     <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" />
  4.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
  5.     <script type="text/javascript">
  6.         $(function(){
  7.             $( "input" ).datepicker({ maxDate: '+0d' });
  8.         });
  9.     </script>
  10.     <title></title>
  11. </head>
  12.     <input />
  13. </body>
  14. </html>
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 10/04/2012, 14:44
 
Fecha de Ingreso: abril-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 1
Respuesta: Deshabilitar fecha en DataPicker

Gracias por tu respuesta, pero tengo pocos conocimientos de javascript y jquey y probé lo que me mandaste de todas las formas posibles y no me salió, pudieras decirme a que te refieres con (".selector") y cuando pusiste el código en html ("input"), he probado así, poniendo el id del input, etc. Espero tu respuesta y muchas gracias.
  #4 (permalink)  
Antiguo 10/04/2012, 19:14
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Deshabilitar fecha en DataPicker

A ver, posteá tu código. El selector que va ahí es un selector jQuery (o CSS). Por ejemplo, si el id de tu input que funciona como fecha es "fecha", tu código sería así:

Código HTML:
Ver original
  1. <script type="text/javascript">
  2.         $(function(){
  3.             $( "#fecha" ).datepicker({ maxDate: '+0d' });
  4.         });
  5.     </script>
__________________
nahueljose.com.ar
  #5 (permalink)  
Antiguo 10/04/2012, 21:27
 
Fecha de Ingreso: abril-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 1
Respuesta: Deshabilitar fecha en DataPicker

Mira ya así lo había probado, de todas formas lo volví hacer y nada no me funciona, puedo seguir seleccionando las fechas posteriores a la actual.
Aquí te mando el código para que lo veas. La aplicación la estoy haciendo en Joomla 1.7 por eso es que la llamada a los script y css se hacen de esta manera.

<?php

defined('_JEXEC') or die;

JHtml::_('behavior.tooltip');
JHtml::_('behavior.formvalidation');

jimport('joomla.utilities.date');

$document = JFactory::getDocument();
$document->addStyleSheet(JURI::base().'components/com_moneda/calendario/themes/base/jquery.ui.all.css');
$document->addScript(JURI::base().'components/com_moneda/calendario/jquery-1.6.2.js');
$document->addScript(JURI::base().'components/com_moneda/calendario/ui/jquery.ui.core.js');
$document->addScript(JURI::base().'components/com_moneda/calendario/ui/jquery.ui.widget.js');
$document->addScript(JURI::base().'components/com_moneda/calendario/ui/jquery.ui.datepicker.js');
$document->addStyleSheet(JURI::base().'components/com_moneda/calendario/demos.css');

<script type="text/javascript">

$(function() {
$( "#datepicker" ).datepicker({
showButtonPanel: true
});
});

$(function(){
$( "#datepicker" ).datepicker({ maxDate: '+0d' });
});

</script>
<form action="<?php echo JRoute::_('index.php?option=com_moneda&layout=edit &id='.(int) $this->item->id); ?>" method="post" name="adminForm" id="fecha-form" class="form-validate">
<div class="width-60 fltlft">
<fieldset class="adminform">
<legend><?php echo JText::_('COM_MONEDA_LEGEND_FECHA'); ?></legend>
<ul class="adminformlist">
<li>
<label name="fecha">Fecha</label>
<input type="text" name="fecha" id="datepicker" size="20" />
</li>

</ul>
<input style="margin-top:30px; margin-left:-280px;" class="guardarFecha" type="submit" name="guardarFecha" value="<?php echo JText::_( 'COM_MONEDA_BOTON_GUARDAR' );?>"/>
</fieldset>
</div>
<input type="hidden" name="task" value="fecha.guardarFecha" />
<?php echo JHtml::_('form.token'); ?>
<div class="clr"></div>
</form>

Mira a lo mejor el problema es en el script jquery.ui.datepicker.js que tiene una pila de funciones que yo ni entiendo, no te lo mando porque es demasiado largo, a lo mejor tu la tienes, lo ideal sería que lo vieras.

Bueno mira a ver si me puedes ayudar, muchas gracias y disculpa por las molestias.

Última edición por arlen89; 10/04/2012 a las 21:44
  #6 (permalink)  
Antiguo 11/04/2012, 04:49
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Deshabilitar fecha en DataPicker

Pero... lo has puesto dos veces? Pusiste esto:

Código Javascript:
Ver original
  1. $(function() {
  2.     $( "#datepicker" ).datepicker({
  3.         showButtonPanel: true
  4.     });
  5. });
  6.  
  7. $(function(){
  8.     $( "#datepicker" ).datepicker({ maxDate: '+0d' });
  9. });

Combiná los dos de esta forma:

Código Javascript:
Ver original
  1. $(function(){
  2.     $( "#datepicker" ).datepicker({
  3.         showButtonPanel: true,
  4.         maxDate: '+0d'
  5.     });
  6. });

La forma de usar jQuery es: Selecciono algo --> hago algo.

1°.- Seleccionamos el document y decimos que cuando esté listo (ready) realizaremos una serie de acciones:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     // Acá hago un montón de cosas cuando el DOM termine de cargar
  3. });

Yo en los ejemplos que te pasé lo he abreviado así:

Código Javascript:
Ver original
  1. $(function(){
  2.     // Acá hago un montón de cosas cuando el DOM termine de cargar
  3. });

Lo cual en las últimas versiones de jQuery es exactamente lo mismo que lo anterior.

2°.- Seleccionamos el objeto que queremos que realice alguna acción o sobre el cual queremos aplicar un plugin. En tu caso, un input con id #datepicker. La cadena "#datepicker" sería el selector.

Código Javascript:
Ver original
  1. $(function(){
  2.     // Acá hago un montón de cosas cuando el DOM termine de cargar
  3.     $("#datepicker")
  4. });

3°.- Sobre ese elemento aplicamos la acción o plugin.

Código Javascript:
Ver original
  1. $(function(){
  2.     // Acá hago un montón de cosas cuando el DOM termine de cargar
  3.     $("#datepicker").datepicker();
  4. });

4°.- La mayoría de los plugins tienen opciones, las cuales las ponemos en forma de objeto. Entre {} y separados por comas:

Código Javascript:
Ver original
  1. $(function(){
  2.     // Acá hago un montón de cosas cuando el DOM termine de cargar
  3.     $("#datepicker").datepicker({opcion1: 'valor1', opcion2: 'valor2'});
  4. });

En tu caso, y ordenando un poco para mayor legibilidad:

Código Javascript:
Ver original
  1. $(function(){
  2.     // Acá hago un montón de cosas cuando el DOM termine de cargar
  3.     $( "#datepicker" ).datepicker({
  4.         showButtonPanel: true,
  5.         maxDate: '+0d'
  6.     });
  7. });
__________________
nahueljose.com.ar
  #7 (permalink)  
Antiguo 11/04/2012, 12:05
 
Fecha de Ingreso: abril-2012
Mensajes: 7
Antigüedad: 12 años
Puntos: 1
Sonrisa Respuesta: Deshabilitar fecha en DataPicker

AL FINNNNN!!!!!!! . Ya me salió perfecto, estoy super felizzzz , quedó justo como yo lo quería y todo gracias a ti, que sin tu explicación no lo hubiera logrado, de vedad MUCHAS GRACIASSSS, por todo, por haberte tomado el tiempo de responderme, por las molestias que te pude ocasionar y principalmente por la maravillosa clase de jquery que me diste . Muchas gracias de todo corazón.
  #8 (permalink)  
Antiguo 11/04/2012, 12:51
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: Deshabilitar fecha en DataPicker

De nada amigo :)
__________________
nahueljose.com.ar

Etiquetas: datapicker, deshabilitar, fecha
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:17.