2010-07-20 15 views
9

Mi código jQuery es:Cómo usar plug-in jquery.validate en forma cakephp

$(document).ready(function(){ 
    $('#StudentRegisterForm').validate({   
    rules: { 
     email: { 
     required:true, 
     email:true 
     } 
    } 
    });  
}); 

y en mi correo electrónico formulario:

<td><?php echo $form->input('email',array('class required email')); ?></td> 

El problema es plugin de jQuery validar trabaja en los campos de entrada de atributos 'nombre' pero cakephp lo nombra como data[Student][email]. Si uso este nombre en jquery, arrojaré un error. Si cambio el nombre del campo en cakephp, el valor del correo electrónico no se transfiere a la base de datos. ¿Hay alguna otra ronda sobre camino?

+0

Sólo un error tipográfico de menor importancia en su ejemplo. Quieres clase como una matriz. ''clase' => array ('requerido', 'email')' para ser correcto;) –

+0

para mí no funciona, pero esto funciona input ('email', array ('class') => 'correo electrónico requerido')); ?> – chinni776

Respuesta

15

Usted necesita sólo necesitan un pequeño ajuste, establece la regla mediante una cadena, así:

$(function(){ //short for $(document).ready(function(){ 
    $('#RegisterForm').validate({ 
    rules: { 
     "data[Student][email]": { 
      required:true, 
      email:true 
     } 
    } 
    }); 
}); 
+0

No pude hacerlo funcionar, ¡pero no pensé en citar el nombre! +1 – Leo

+0

@ nick intentaré esto ahora – chinni776

+0

sí funciona gracias – chinni776

1

que tenían exactamente este problema ayer. La respuesta es 'forzar' el nombre en el campo de entrada, como:

echo $form->input('cheque_number',array('name'=>'InvoiceChequeNumber','value'=>'')); 

Pasé un tiempo tratando de evitar hacer eso, pero no pude encontrar ninguna alternativa. No hay problemas para CakePHP cuando lo haces así.

0

El primero es mejor para usar, porque esto mantendrá el pastel this->data structure, pero el segundo no lo es. Esto es para recordarle que, cuando se va a utilizar el data[modelname][fieldname] dan el nombre de la clase en la entrada Aray como:

<?php echo $form->input('email',array('type'=>'text','class' => array('required','email'),'error'=>false,'label'=>false,'div'=>false)); ?> 
+2

El primero qué? – BoltClock

Cuestiones relacionadas