我的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中重命名该字段,则电子邮件值不会传递给数据库。还有其他方法吗?
答案 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)); ?>