Как использовать плагин jquery.validate в форме CakePHP - PullRequest
9 голосов
/ 20 июля 2010

Мой код 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 работает с атрибутом полей ввода name, но cakephp называет его data[Student][email]. Если я использую это имя в jquery, то выдает ошибку. Если я переименую поле в cakephp, значение электронной почты не будет передано в базу данных. Есть ли какой-нибудь другой раунд о пути?

Ответы [ 3 ]

15 голосов
/ 20 июля 2010

Вам просто нужен небольшой твик, установите правило, используя строку, например:

$(function(){ //short for $(document).ready(function(){
  $('#RegisterForm').validate({
    rules: {
        "data[Student][email]": {
            required:true,
            email:true
        }
    }
  });
});
1 голос
/ 20 июля 2010

У меня была именно эта проблема вчера. Ответ заключается в том, чтобы «принудительно» ввести имя в поле ввода, например:

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

Я потратил некоторое время, пытаясь избежать этого, но я не мог найти альтернативы. Нет проблем для CakePHP, когда вы делаете это следующим образом.

0 голосов
/ 24 ноября 2011

Первый лучше использовать, потому что он будет поддерживать торт this->data structure, а второй - нет. Это напоминает, что, когда вы будете использовать data[modelname][fieldname], введите имя класса в поле ввода как:

<?php echo $form->input('email',array('type'=>'text','class' => array('required','email'),'error'=>false,'label'=>false,'div'=>false));  ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...