2011-09-03 18 views
9

Estoy usando jquery validation plugin para validar mis formularios. Para validar una entrada de texto, todo lo que hago es escribir class="required" en el atributo y hace la validación por mí.Validación de tiempo con Jquery

Ahora estoy tratando de validar una entrada donde los usuarios tendrán que ingresar la hora (como 02:45:00 AM) pero el complemento que estoy usando no tiene ninguna función para la validación del tiempo. Por lo tanto, tengo que construir una validación personalizada para eso, pero el problema es que no tengo conocimiento de Jquery :(

¿Me puede mostrar cómo hacer esto?

Gracias de antemano

Para su información que necesito para construir para el formato de 12 h

+0

dar algunos cuadros combinados para seleccionar el tiempo para el usuario, entonces usted puede validar la mismaily –

Respuesta

21

se puede usar jQuery validadores addMethod()

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> 
<script src="http://ajax.aspnetcdn.com/ajax/jQuery.Validate/1.6/jQuery.Validate.js" type="text/javascript"></script> 
<script type="text/javascript"> 

$().ready(function() { 

$.validator.addMethod("time", function(value, element) { 
return this.optional(element) || /^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/i.test(value); 
}, "Please enter a valid time."); 

    $("#login").validate({ 
      rules: { 
        time: "required time", 
      }, 

    }); 

}); 

</script> 
</head> 
<body> 
    <form id="login" name="login" method="post" action="#"> 
    <h1>Time Validation</h1><br /> 
    <label for="time">Enter Time</label> 
    <input id="time" name="time" type="text" value="" tabindex="1" /><br /> 
    <input id="submit" name="submit" type="submit" value="Submit" tabindex="2" /> 
</form> 
</body> 
</html>​ 

Aquí es una jsFiddle -.

Espero que esto ayude.

+0

Muchas gracias- Martyhines. ¿Podría decirme amablemente qué código escribir aquí? Devuelva this.optional (element) ||/^ (([0-1]? [0-9]) | ([2] [0-3])): ([0-5]? [0-9]) (: ([0-5] ? [0-9]))? $/I.test (valor); para hacerlo validando para el formato de 12 horas (por ejemplo, 02:30 AM). * No se permite el formato de 24 horas (no, 21:20) –

+6

Puede usar '^ (([0-1]? [0-2]) | ([2] [0-3])): ([0-5]? [0-9]) (: ([0-5]? [0-9]) (a | p) m)? $ 'para validar para 12:34:56 a.m. o pm, o podría usar'^(([0-1]? [0-2]) | ([2] [0-3])): ([0-5 ]? [0-9]) (a | p) m? $ 'Para las 12:34 am o pm. Eche un vistazo a http://rubular.com/ para jugar con estas expresiones regulares. – martyhines

+0

Está funcionando perfectamente. Muchas gracias de nuevo ... por tu ayuda. :) –

Cuestiones relacionadas