Skip to content

Commit ed4ee51

Browse files
committed
feat: add specification for input-text
1 parent c603c63 commit ed4ee51

File tree

3 files changed

+143
-2
lines changed

3 files changed

+143
-2
lines changed

docs/ru/inputs/input-number.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ ____
6666
## Пример
6767

6868
Для данного поля нет дополнительных обязательных параметров, по этому нам необходимо
69-
указать лишь `type` и `name`:
69+
указать лишь `type` и `name`. Функция `pretty` находится во вкладке `ts`:
7070

7171
::: code-group
7272
```html
@@ -75,6 +75,11 @@ ____
7575

7676
```ts
7777
import {FormField} from "jenesius-vue-form";
78+
79+
function prettyFn(value) {
80+
if (!value) return '0';
81+
return `- ${value} -`;
82+
}
7883
```
7984
:::
8085

docs/ru/inputs/input-text.md

Lines changed: 136 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,16 @@
22
import {FormField, Form, useFormValues} from '../../../src';
33

44
const form = new Form();
5-
const values = useFormValues(form)
5+
const values = useFormValues(form);
6+
7+
function prettyFn(v) {
8+
if (!v) return '';
9+
return `- ${v} - `;
10+
}
11+
function modifyFn(v) {
12+
if (!v) return '';
13+
return v.replace(/[^qwerty]/gi, '');
14+
}
615

716
</script>
817

@@ -12,3 +21,129 @@ const values = useFormValues(form)
1221

1322
- Ключевое слово `text`. Используется по умолчанию.
1423
- WhatWG [Спецификация](https://html.spec.whatwg.org/multipage/input.html#text-(type=text)-state-and-search-state-(type=search)).
24+
25+
## Параметры
26+
27+
### autofocus <Badge type = "info">Необязательный</Badge>
28+
29+
- Тип `boolean | 'true' | 'false'`.
30+
31+
Если данный параметр передаётся, при установке данного поля, на него будет автоматически передано управление.
32+
33+
### placeholder <Badge type = "info">Необязательный</Badge>
34+
- Тип `string`
35+
36+
Строковое значение подсказки перед вводом данных.
37+
38+
### maxlength <Badge type = "info">Необязательный</Badge>
39+
- Тип 'string | number'
40+
Ограничивает максимальный размер вводимых данных.
41+
42+
### prefix <Badge type = "info">Необязательный</Badge>
43+
- Тип 'string'
44+
Если данный атрибут передан, он будет отображаться перед вводимым значением.
45+
46+
### numeric <Badge type = "info">Необязательный</Badge>
47+
- Тип `boolean`
48+
Если данный атрибут указан, ввод будет приводиться к валидному числу. Обратите внимание,
49+
что тип возвращаемого значения остаётся строковым.
50+
51+
### pretty <Badge type = "info">Необязательный</Badge>
52+
- Тип [StringModify](./../guide/types#StringModify).
53+
54+
Используется для изменения отображения поля. Не изменяет значение, хранимое в форме.
55+
Данные правила принимаются только после того, как поле стало не активным.
56+
57+
### modify <Badge type = "info">Необязательный</Badge>
58+
- Тип [StringModify](./../guide/types#StringModify).
59+
60+
Функция для изменения вводимого значения. В отличие от `pretty`, работает перманентно.
61+
Изменяет значение хранимое в форме.
62+
63+
____
64+
65+
Так же все параметры, общие для всех `FormField`. Информацию о них можно посмотреть на [этой странице](./form-field.md#params).
66+
67+
## Значение
68+
69+
Данное поле работает со строковыми значениями.
70+
71+
## Спецификация
72+
73+
- Поле доступно при использовании `Tab` и `Shift + Tab`.
74+
- Блокировка отменяет навигацию через `Tab`.
75+
- Блокировка поля изменяет стилистику `text`.
76+
- Ошибка валидации изменяет стилистику `text`.
77+
- Аттрибут `maxlength` влияет на ограничения только при вводе значения. Если значение
78+
будет установлено из формы и по длине будет превышать значение `maxlength`, оно не будет
79+
обрезано в поле, а выведется полностью.
80+
81+
82+
## Примеры
83+
84+
85+
Для данного поля нет дополнительных обязательных параметров, по этому нам необходимо
86+
указать лишь `name`, т.к. атрибут `type` по умолчанию имеет значение `text`. Функции `pretty`
87+
и `modify` находятся во вкладке `ts`:
88+
89+
::: code-group
90+
```html
91+
<form-field name = "username"/>
92+
```
93+
94+
```ts
95+
import {FormField} from "jenesius-vue-form";
96+
97+
function prettyFn(v) {
98+
if (!v) return '';
99+
return `- ${v} - `;
100+
}
101+
function modifyFn(v) {
102+
if (!v) return '';
103+
return v.replace(/[^qwerty]/gi, '');
104+
}
105+
```
106+
:::
107+
108+
Поле по умолчанию:
109+
<FormField name = "username" label = "Введите Username" />
110+
111+
____
112+
113+
В заблокированном состоянии:
114+
<FormField disabled name = "username" label = "Заблокированное" />
115+
116+
____
117+
118+
Поле не прошло валидацию:
119+
<FormField :errors = "['The password is too simple']" name = "username" label = "С ошибкой" />
120+
121+
____
122+
123+
Ограничение длинны поля используя `maxlength`:
124+
<FormField name = "username" label = "Введите Длинне 5" maxlength = 5 />
125+
126+
____
127+
128+
Использование `prefix`:
129+
<FormField name = "username" label = "Введите значение" prefix = "username:" />
130+
131+
____
132+
133+
Ввод строки приводимой к числу, использование атрибута `numeric`:
134+
<FormField name = "username" label = "Введите значение" numeric />
135+
136+
____
137+
138+
Изменение только отображаемого значения при помощи `pretty`:
139+
<FormField name = "username" label = "Ввод красивого значения" :pretty = "prettyFn" />
140+
141+
____
142+
Изменения ввода через `modify`:
143+
<FormField name = "username" label = "Используй только q w e r t y" :modify = "modifyFn" />
144+
145+
----
146+
Текущее состояние формы:
147+
```ts-vue
148+
{{values}}
149+
```

examples/all-inputs/App.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<input-field name = "username" label = "Prefix" prefix = "Login:"/>
1212
<input-field name = "username" label = "Placeholder" placeholder = "Write something"/>
1313
<input-field name = "username" label = "Numeric" numeric/>
14+
<input-field name = "username" label = "Max length 10" maxlength = "10" />
1415
<h2>Input Textarea</h2>
1516
<input-field name = "description" type = "textarea"/>
1617
<input-field name = "description" type = "textarea" label = "With label"/>

0 commit comments

Comments
 (0)