Yii: Подкладываем маску в поле формы или используем CMaskedTextField Widget

Yii: Подкладываем маску в поле формы или используем CMaskedTextField Widget Для маскирования поля формы заменяем TextField на CMaskedTextField, и устанавливаем свойства маскирования. Это удобно для ограничения вводимых пользователем данных в поля формы.

Мы использовали это удобство в приложении "Spanking Subscription". 

В виде заменяем:

<?php echo $form->textField($model,'phone',array('size'=>20,'maxlength'=>11)); ?>

на виджет:

<?php
			$this->widget('CMaskedTextField', array(
					'model' => $model,
					'attribute' => 'phone',
					'mask' => '79999999999',
					//'charMap' => array('.'=>'[\.]' , ','=>'[,]'),
					'htmlOptions' => array('size' => 15, 'maxlength'=>11)
			));
		?> <i>пример: "<b>79151234567</b>"</i>

В модели:

public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('name, phone, email, city_id', 'required'),
			array('phone', 'numerical'),
			array('email, phone', 'unique'),
	               ...
			array('phone', 'length', 'min'=>11, 'max'=>11),
			//array('phone', 'match', 'pattern'=>'/^([+]?[0-9 ]+)$/'),
			...
		);
	}

Другой пример для даты рождения (источник - yiismart.wordpress.com) в модели:

public function rules()
{
    return array(
        array('name, dob', 'required'),
        array('name', 'length', 'max'=>'108'),
        array('dob', 'date', 'format'=>'dd/MM/yyyy'),
        array('name,dob','safe','on'=>'search'),
    );
}

В виде:

<div>
<?
echo $form->labelEx($model, 'Date of birth');
$this->widget('CMaskedTextField', array(
'mask' => '99/99/9999',
'placeholder' => 'x',
'completed' => 'function(){alert(1);}',
'model' => $model,
'name' => 'dob',
));
?>
</div>
Тут при заполнении поля появится окошко об успешном заполнении - "1".



Источник: loco.ru

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (2)     Подпишитесь на RSS комментариев к этой статье.

2 комментариев

#584
ra говорит:
July 25, 2012 at 10:04 pm
А как и маску оставить, и выбор через JQuery UI ?
#601
almix говорит:
August 2, 2012 at 01:37 pm
Что такое выбор через JQuery UI ?