如何在cakephp表单中使用jquery.validate插件

我的jQuery代码是:

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

并在我的表格电子邮件中:

 input('email',array('class required email')); ?> 

问题是jquery validate plugin在输入字段属性’name’上工作,但cakephp将其命名为data[Student][email] 。 如果我在jquery中使用此名称,则会抛出错误。 如果我重命名cakephp中的字段,则电子邮件值不会传递给数据库。 有没有其他回合的方式?

您只需要一个小调整,使用字符串设置规则,如下所示:

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

我昨天遇到了这个问题。 答案是在输入字段上“强制”输入名称,例如:

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

我花了一段时间试图避免这样做,但我找不到任何替代方案。 当你这样做时,CakePHP没有问题。

第一个更好用,因为这将保持蛋糕 – this->data structure ,但第二个不是。 这是为了提醒一下,当你使用data[modelname][fieldname] ,在输入aray中给出类名:

 input('email',array('type'=>'text','class' => array('required','email'),'error'=>false,'label'=>false,'div'=>false)); ?>