forked from samdark/yiiframework_ru_cookbook
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathform.cmaskedtextfield.txt
60 lines (46 loc) · 2.52 KB
/
form.cmaskedtextfield.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Использование виджета CMaskedTextField
=========================
Для повышения удобства и наглядности ввода значения в поле может послужить виджет [CMaskedTextField].
В качестве примера рассмотрим поле для ввода телефонного номера.
Зачастую, номер телефона (вместе с кодом) вводится в одно текстовое поле.
И, если не добавить подсказку о том, в каком формате следует указать свой телефон,
то посетитель может довольно долго подбирать корректный вариант.
Чтобы помочь посетителю сайта с вводом правильного значения, которое пройдёт валидацию,
и сэкономить его время, на помощь придёт виджет [CMaskedTextField].
В представлении запишем:
~~~
[php]
<div class="row">
<?php echo $form->labelEx($model,'phone'); ?>
<?php
$this->widget('CMaskedTextField', array(
'model' => $model,
'attribute' => 'phone',
'mask' => '+7-999-999-9999',
'placeholder' => '*',
'completed' => 'function(){console.log("ok");}',
));
?>
<?php echo $form->error($model,'phone'); ?>
</div>
~~~
- `mask`: маска ввода,
- `placeholder`: символы до ввода значений пользователем, в данном случае: `*`,
- `completed`: JavaScript функция, которая срабатывает после завершения ввода пользователем.
В модели будем проверять введённое значение по регулярному выражению:
~~~
[php]
array(
'phone',
'match',
'pattern' => '/^((\+?7)(-?\d{3})-?)?(\d{3})(-?\d{4})$/',
'message' => 'Некорректный формат поля {attribute}'
),
~~~
`{attribute}` заменяется именем поля при возникновении в данном поле ошибки.
Кстати, [regexlib.com](http://regexlib.com) — сайт с примерами регулярных выражений на все случаи жизни.
Стоит изучить
-------------
- [CMaskedTextField](http://www.yiiframework.com/doc/api/CMaskedTextField).
---
- `Автор`: Сергей Жолобов, Xpycm ([monoray.ru](http://monoray.ru/)).