2010-07-20 44 views
9

我jQuery代碼是:如何在CakePHP的形式使用jquery.validate插件

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

,並在我的表格電郵:

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

問題是,JQuery驗證插件的工作原理上的輸入字段屬性'name',但cakephp將其命名爲data[Student][email]。如果我在jQuery中使用這個名字,它會拋出一個錯誤。如果我在cakephp中重命名字段,則電子郵件值不會傳遞到數據庫。關於方式還有其他回合嗎?

+0

就在你的榜樣未成年錯字。你想要一個類作爲一個數組。 ''class'=> array('required','email')'爲正確性;) – 2010-07-20 10:29:06

+0

對我來說它不工作,但是這個工作 <?php echo $ form-> input('email',array('class' =>'必填電子郵件')); ?> – chinni776 2010-07-20 10:51:50

回答

15

您需要只需要一個小調整,使用一個字符串,這樣設置規則:

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

我無法工作,但我沒有想到引用這個名字! +1 – Leo 2010-07-20 10:43:02

+0

@尼克我現在試試這個 – chinni776 2010-07-20 10:52:22

+0

是的,它的作品thanx – chinni776 2010-07-20 10:59:50

1

我有完全相同昨天這個問題。答案是「力」的輸入欄的名稱,如:

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

我花了一段時間試圖避免這樣做,但我找不到任何替代。當你這樣做時,CakePHP沒有任何問題。

0

第一個更好用,因爲這會保留蛋糕this->data structure,但第二個不是。這是要提醒的是,當你將使用data[modelname][fieldname]輸入給類名阿雷像:

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

第一個是什麼? – BoltClock 2011-11-24 11:45:47