Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/09/2010, 05:12
Dany_s
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Problema al validar nick con jquery.validate()

y con ajax, por eso puse "simulo una petición", la respuesta tiene que devolver true o false o lo que quieras para decirle al plugin que mostrar

Código HTML:
Ver original
  1.     <head>
  2.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  3.         <title>Formulario Validation</title>
  4.         <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  5.         <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
  6.         <script type="text/javascript">
  7.             $(document).ready(function(){
  8.                 var usuarioValido;
  9.                 $.validator.addMethod("regex",function(value,element,regexp){
  10.                     var re= new RegExp(regexp);
  11.                     return this.optional(element) || re.test(value);
  12.                 },"Solo caracteres alfanumericos");
  13.  
  14.                 $.validator.addMethod("comprobarUsuario",function(value,element, url){
  15.                     $.ajax({
  16.                         type: "GET",
  17.                         url: url,
  18.                         data: "usuario="+value,
  19.                         success: function(disponible){
  20.                             usuarioValido = (disponible == 'true')?true:false;
  21.                         }
  22.                     });
  23.                     return usuarioValido;
  24.                 },"Usuario ocupado");
  25.  
  26.                 $("#registro").validate({
  27.                     rules:{
  28.                             usuario:{
  29.                                 required:true,
  30.                                 regex:"^[a-zA-Z0-9_]+$",
  31.                                 comprobarUsuario:"comprobar.php"
  32.                             },
  33.                             pass:{
  34.                                 required:true
  35.                             },
  36.                             pass2:{
  37.                                 equalTo:"#pass"
  38.                             },
  39.                             email:{
  40.                                 email:true,
  41.                                 required:true
  42.                             },
  43.                             sitioweb:{
  44.                                 url:true
  45.                             },
  46.                             lenguaje:{
  47.                                 required:true
  48.                             }
  49.                     },
  50.                     messages:{
  51.                         usuario:{
  52.                             required:"Campo obligatorio"
  53.                         },
  54.                         pass:{
  55.                             required:"Campo obligatorio"
  56.                         },
  57.                         pass2:{
  58.                             equalTo:"La contraseña no es igual"
  59.                         },
  60.                         email:{
  61.                             email:"El email no es valido",
  62.                             required:"Campo es obligatorio"
  63.                         },
  64.                         sitioweb:{
  65.                             url:"La url no es valida"
  66.                         },
  67.                         lenguaje:{
  68.                             required:"Campo obligatorio"
  69.                         }
  70.                     },
  71.                     submitHandler:function(){
  72.                         alert("Los datos han sido enviados");
  73.                     }, success: function(label) {
  74.                         if (usuarioValido){
  75.                             label.addClass('valid').text("Usuario disponible");
  76.                         }
  77.                     }
  78.  
  79.                 })
  80.             })
  81.         </script>
  82.     </head>
  83.     <body>
  84.         <fieldset>
  85.             <legend>Ingreso de usuario</legend>
  86.             <form id="registro" name="registro" action="">
  87.                 <div>
  88.                     <label class="campo">Usuario:</label>
  89.                     <input type="text" id="usuario" name="usuario" />
  90.                 </div>
  91.                 <div>
  92.                     <label class="campo">Contraseña:</label>
  93.                     <input type="text" id="pass" name="pass" />
  94.                 </div>
  95.                 <div>
  96.                     <label class="campo">Repetir:</label>
  97.                     <input type="text" id="pass2" name="pass2" />
  98.                 </div>
  99.                 <div>
  100.                     <label class="campo">Email:</label>
  101.                     <input type="text" id="email" name="email" />
  102.                 </div>
  103.                 <div>
  104.                     <label class="campo">Sitio web:</label>
  105.                     <input type="text" id="sitioweb" name="sitioweb" />
  106.                 </div>
  107.                 <div>
  108.                     <label class="campo">Lenguaje:</label>
  109.                     <select id="lenguaje" name="lenguaje">
  110.                         <option selected="selected" value="">Selecione un lenguaje</option>
  111.                         <option value="1">PHP</option>
  112.                         <option value="2">JAVA</option>
  113.                         <option value="3">ASP.NET</option>
  114.                     </select>
  115.                 </div>
  116.                 <input type="submit" value="Registrar" />
  117.             </form>
  118.         </fieldset>
  119.     </body>
  120. </html>

estudiate esto http://api.jquery.com/jQuery.ajax/