2014-12-08 2 views
0

Я пытаюсь сделать CMaskedTextField в поле ввода количества с базовой величиной = 0, а максимальное значение = 99. не могу понять, маску и/или charMap ,Yii CMaskedTextField с одной или двумя цифрами 0-99 (количество)

Я пробовал:

$this->widget('CMaskedTextField', array(
       'model' => $position, 
       'attribute' => 'Quantity', 
       'mask' => '99', 
       'value' => $currentQuantity, 
       'htmlOptions' => array('size' => 2, 'maxlength'=>2, 'minlength'=>1) 
     ), true); 

, но эта маска означает, что должны быть только две цифры

Дополнительно (я предполагаю, что JS будет делать работу, если не cmaskedtextfield): когда пользователь убирает вход это должен преобразуется в '0'.

+0

не могли бы вы разместить в своем вопросе то, что вы уже пробовали как в поле зрения, так и контроллер/действие? –

ответ

0

маска может быть установлена ​​через регулярное выражение: \d{1,2} В типовых правилах() можно определить:

array('attributeName', 'match', 'pattern' => '/\d{1,2}/', 
'message' => '{attribute} can only contain digits from 0 to 99'), 

Там нет Convertion 0, но явное сообщения для пользователя.

+0

Свойство маски CMaskedTextField работает неправильно со значением \ d {1,2} –

+0

@SergeyLobanov, похоже, вы расширили 'CHtml :: textField' в' CMaskedTextField'. Это действительно необходимо? Почему бы просто не использовать проверку с правилом по шаблону регулярных выражений? Вы знакомы с регулярным выражением? –

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