2016-12-09 2 views
0

У меня есть 2 поля в форме pricemark и цене, когда пользователь выбирает значение pricemark = other пользователь не может ввести значение менее 250. Мне нужно правило проверки для него в yii2, но это не работает . вот мой кодYii2 условное правило валидации на основе минимального значения

 ['price', 'min' => 250, 'when' => function ($model) { 
      return $model->priceMark == 'other'; 
     }], 
+0

Уверены ли вы, что он не работает? Или, возможно, он работает на стороне сервера, но на стороне клиента, и вы хотите, чтобы оба? – Bizley

+0

В настоящее время он не работает, я в первую очередь ищу сервер, но если он сможет заставить его работать на стороне клиента, а это будет здорово –

+0

Так просто, чтобы понять, работает ли он на стороне сервера? – Bizley

ответ

0

Попробуйте это:

['price', 'number', 'min' => 250, 'when' => function ($model) { 
    return $model->priceMark == 'other'; 
}, 'whenClient' => 'function (attribute, value) { 
    return $("<field>").val() == "other"; 
}'], 

, где <field> является идентификатором priceMark элементом, как и его класс или ID (т.е. если имя #price_pricemark модель Price).

+0

Спасибо @bizley :) –

0

Глупо меня, я не указывал тип атрибута для проверки. правильный код должен быть

 ['price', 'integer', 'min' => 250, 'when' => function ($model) { 
      return $model->priceMark == 'other'; 
     }, 'whenClient' => "function (attribute, value) { 
      return $('#uploadform-pricemark').val() == 'other'; 
     }"], 

см integer после атрибута цен я пропустил это, я также добавил стороне клиента код, который также работает отлично теперь.

,

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