Foros del Web » Programando para Internet » Jquery »

jquery.validate required calendario

Estas en el tema de jquery.validate required calendario en el foro de Jquery en Foros del Web. Estimados, estoy usando jquery.validate.js. Pero tengo un problema, tengo un calendario en un input readonly="true" entonces al setear su clase como class="required" ya no funciona ...
  #1 (permalink)  
Antiguo 01/06/2012, 08:22
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años
Puntos: 0
jquery.validate required calendario

Estimados, estoy usando jquery.validate.js.
Pero tengo un problema, tengo un calendario en un input readonly="true" entonces al setear su clase como class="required" ya no funciona la validación.

Me pueden ayudar plis?

Saludos.
  #2 (permalink)  
Antiguo 01/06/2012, 09:25
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 12 años, 5 meses
Puntos: 51
Respuesta: jquery.validate required calendario

Hola franfritz, ¿podrías añadir un link para poder verlo? Es que no te entiendo bien...
Saludos
__________________
Diseño Web Jaén
  #3 (permalink)  
Antiguo 01/06/2012, 09:36
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años
Puntos: 0
Respuesta: jquery.validate required calendario

garciasanchezdani gracias. No tengo la web publica, pero trataré de explicarme mejor.

Cuando a un input text le doy class="required" y le doy submit, si el campo está vacío me da el mensaje "Este campo es requerido" cierto?, bien entonces tengo un input donde abro un calendario y esta con su readonly="true". Después de hacer el mismo ejercicio anterior si el campo del calendario está vacío me da el mensaje "Este campo es requerido" pero cuando selecciono una fecha el mensaje "Este campo es requerido" queda y no desaparece. Se entiende ahi?

Avisame.
De antemano gracias.
Saludos.
  #4 (permalink)  
Antiguo 01/06/2012, 09:45
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 12 años, 5 meses
Puntos: 51
Respuesta: jquery.validate required calendario

Hola amigo, sí, ya entendí mucho mejor...
Pues quizás el evento focusout te ayude para analizar que el campo tenga un valor verdaderamente... http://api.jquery.com/focusout/

Código Javascript:
Ver original
  1. <script>
  2.          $("#campofecha").focusout(function(){  //el id de tu input fecha es campofecha
  3.                   if( $(this).attr('value') != '' )
  4.                   //aquí validas tu campo, porque sí contiene un valor      
  5.          });
  6. </script>

Suerte
__________________
Diseño Web Jaén
  #5 (permalink)  
Antiguo 01/06/2012, 10:00
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: jquery.validate required calendario

Hola franfritz,

Estas usando algún plugin para tu calendario? Porque la validación debería funcionar correctamente sin importar que sea readonly="true".

Una vez que seleccionas una fecha revisa el código fuente de tu input para verificar que se esté llenando en el atributo value.

Saludos.
  #6 (permalink)  
Antiguo 01/06/2012, 10:25
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años
Puntos: 0
Respuesta: jquery.validate required calendario

garciasanchezdani ocupé el focusout, pero no me funcionó.

quike88 estoy usando el datepicker de jquery.
Este es el código y tal como digo; no desaparece el mensaje al seleccionar una fecha.

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><title>
	Formulario
</title>
	<link href="css/estilo.css" rel="stylesheet" type="text/css" />
	<link href="css/custom-theme/jquery-ui-1.8.12.custom.css" rel="stylesheet" type="text/css" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
	<script type="text/javascript" src="js/jquery-1.5.2.js"></script>
	<script type="text/javascript" src="js/jquery-ui-1.8.12.custom.min.js"></script>
	<script type="text/javascript" src="js/jquery.json-2.2.js"></script>	
	<script type="text/javascript" src="js/jquery.validate.js"></script>
	

	
    <script type="text/javascript" language="javascript">

	
         $("#fec_nac").focusout(function(){  //el id de tu input fecha es campofecha
                  if( $(this).attr('value') != '' )
				          $('#form1').validate();
         });	
	
	$(function(){
		$( "#fec_nac" ).datepicker();
		$('#region').change(function(){
				if($(this).val()!=''){
					$('#form1').validate();
					$('#comuna1').hide();
					$('#comuna2').show();
					$('#comuna2').load('comuna.php?region='+$(this).val());  
				}	
		});
	})	
	
	$(document).ready(function(){
        $('#form1').validate();
	});	
    </script> 
	
    </head>
<body>
<form method="post" action="" id="form1" name="form1">

    <div class="page">
            
                <div id="header"></div>
            
        

    <div id="MainContent_PanelGeneral">
	

            <table border="1" style="width: 100%;" cellpadding="2" cellspacing="2" 
                class="bordes">
				<tr>
					<td rowspan="7" style="width: 60px">
						<img id="MainContent_Image1" src="img/1.png" />
                    </td>
					<td style="width: 300px">
                      <label for="rut">  R.U.T * </label>
					</td>
					<td>
					
					<input type="text" name="rut" id="rut" class="rut required" maxlength="10" style="width:150px;">
						
					</td>
				</tr>
				<tr>
					<td>
						Nombres *
					</td>
					<td>
						<input type="text" name="nombres" id="nombres" class="required" maxlength="50" style="width:250px;">
					</td>
				</tr>
				<tr>
					<td>Apellido Paterno *</td>
					<td>
						<input type="text" name="paterno" id="paterno" class="required" maxlength="50" style="width:250px;">
					</td>
				</tr>
				<tr>
					<td>Apellido Materno *</td>
					<td>
						<input type="text" name="materno" id="materno" class="required" maxlength="50" style="width:250px;">
					</td>
				</tr>
				<tr>
					<td>
						Fecha Nacimiento *</td>
					<td>
					<input type="text" name="fec_nac" id="fec_nac" class="required"/>
					</td>
				</tr>

			</table>
            <br />
            <table cellspacing="0" cellpadding="2" border="0" style="width: 100%">
                <tr>
                    <td colspan="3" style="text-align: right">
                        <input type="submit" value="Enviar Formulario" id="MainContent_btnGrabar" style="height:26px;" />
                    </td>
                </tr>
			</table>

	</div>
            

	</div>

</div>

    </div>
 </form>
</body>
</html>
  #7 (permalink)  
Antiguo 01/06/2012, 10:41
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 12 años, 5 meses
Puntos: 51
Respuesta: jquery.validate required calendario

Hola, tal y como tienes el código, coge $(document).ready(function(){ y colócalo justo en la primera línea después del script:

Código Javascript:
Ver original
  1. <script type="text/javascript" language="javascript">
  2. $(document).ready(function(){
  3.    
  4. $("#fec_nac").focusout(function(){

Eso resolverá tu problema, ya que lo he probado en local
Saludos, Daniel
__________________
Diseño Web Jaén
  #8 (permalink)  
Antiguo 01/06/2012, 11:42
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años
Puntos: 0
Respuesta: jquery.validate required calendario

garciasanchezdani muchas gracias. Pero sabes no me funciona. Estoy probando en firefox 12.0.
Dejé así el código:

Código PHP:
    <script type="text/javascript" language="javascript">
    $(
document).ready(function(){
     $(
"#fec_nac").focusout(function(){  
              if( $(
this).attr('value') != '' )
                      $(
'#form1').validate();
     });        
    }); 
El mensaje desaparece a la 2da vez que selecciono una fecha.
  #9 (permalink)  
Antiguo 01/06/2012, 13:13
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: jquery.validate required calendario

Prueba reemplazando esta linea:

Código PHP:
Ver original
  1. $( "#fec_nac" ).datepicker();

Por esto:

Código PHP:
Ver original
  1. $("#fec_nac").datepicker({
  2.     onClose: function(dateText, inst) {
  3.         $("#form1").valid();
  4.    }
  5. });

Saludos!
  #10 (permalink)  
Antiguo 01/06/2012, 14:22
Avatar de franfritz  
Fecha de Ingreso: marzo-2003
Ubicación: Stgo Chile
Mensajes: 260
Antigüedad: 21 años
Puntos: 0
Respuesta: jquery.validate required calendario

Ahí si funcionó!!!.
Muchas gracias quike88.
También gracias garciasanchezdani.
Gracias por su tiempo.
Saludos.

Etiquetas: calendario, funcion, input, js, required
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 07:45.