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

时间:2010-07-20 10:22:27

标签: jquery cakephp jquery-validate

我的jQuery代码是:

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

以我的形式发送电子邮件:

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

问题是jquery validate plugin适用于输入字段属性'name',但cakephp将其命名为data[Student][email]。如果我在jquery中使用此名称,则会抛出错误。如果我在cakephp中重命名该字段,则电子邮件值不会传递给数据库。还有其他方法吗?

3 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:1)

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

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

我花了一些时间试图避免这样做,但我找不到任何其他选择。当你这样做时,CakePHP没有问题。

答案 2 :(得分:0)

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

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