2013-11-29 2 views
0

Я новичок в системе Yii. Теперь я использую два текстовых поля для min size и max size. Теперь эти текстовые поля должны принимать только целые числа. Но они также берут алфавиты. Я использовал следующее правило в файле модели.Yii - проверка корректности текста не работает

public function rules() { 
return array(
    array('min_size, max_size', 'numerical', 'integerOnly'=>true)); 
    } 

Но это, кажется, не работает, ошибка не отображается. Как я могу успешно проверить, отображая ошибку при вводе текста. Должен ли я внести некоторые изменения в main.php

+0

убедитесь, что ваш дб имеет эти поля или объявили их в модели, мы можем увидеть вашу форму, где эти поля ??? Также проверьте консоль, если конфликт jquery отсутствует. –

+0

@Coderanonymous. Эти поля не извлекаются из db, они формируются из xml и извлекаются из xml – user3004356

+0

, поэтому объявляйте их в модели и проверяйте, покажите свою форму. –

ответ

0

Посмотрите на этот вид формы в вашем коде

<?php 
    $form = $this->beginWidget('CActiveForm', array(
     'id' => 'trip-form', 
     'enableAjaxValidation' => true, 
     'enableClientValidation' => true, 
    ?> 

если вы хотите Ajax проверки, чтобы иметь место, то эта линия должна быть раскомментировал в контроллере

$this->performAjaxValidation($model); 

проверка клиента будет автоматически проходить

+0

Я не вижу эту строку в любом месте контроллера – user3004356

+0

Эта строка присутствует при объявлении формы – Ninad

0

Просто попробуйте добавить это вместо того, чтобы

if (isset($_POST['ajax']) && $_POST['ajax'] === "your_form_id") { 
      echo CActiveForm::validate($model); 
      Yii::app()->end(); 
     } 

Это будет проверять с моделью, когда запрос Аякса получен

+0

Где я должен добавить это в контроллер, внутри любой функции или что-то – user3004356

+0

добавьте это в действие, из которого отображается ваша форма. –

+0

Нет Valiadtion не произошло. Теперь я добавил функцию ajaxvalidation, и теперь я пытаюсь выполнить – user3004356

Смежные вопросы