НачалоОсновыКомпонентыТексты

Field

Field даёт одному полю формы видимую подпись, подсказку и сообщение об ошибке и называет поле для скринридеров.

Стабильный
ОбзорИспользованиеAPIДоступность
<tk-field label="Email address" helper="We only use this for the receipt">
  <tk-input type="email" name="email" autocomplete="email"></tk-input>
</tk-field>

Анатомия

Часть Что это
tk-field обёртка; своей остановки Tab и своего значения в форме у неё нет
подпись текст из label, а при required — звёздочка
подсказка текст из helper, между подписью и полем
слот по умолчанию поле, ровно одно
ошибка сообщение из error с иконкой, под полем

Подпись, подсказку и ошибку Field рисует сам по своим атрибутам. Значение, остановка Tab и клавиатура остаются у поля.

Состояния

<tk-field label="Company name" required>
  <tk-input name="company"></tk-input>
</tk-field>
<tk-field label="Email address" required error="Enter an email address, like name@example.com">
  <tk-input type="email" name="email" value="ada@"></tk-input>
</tk-field>
<tk-field label="Username" helper="Usernames can't be changed" disabled>
  <tk-input name="username" value="ada"></tk-input>
</tk-field>
  • required: добавляет звёздочку после подписи и делает поле обязательным. Звёздочка серая, не красная: пустое обязательное поле ещё не ошибка.
  • error: показывает сообщение под полем, красит рамку в красный и отмечает поле как неверное. Чтобы убрать ошибку, уберите error.
  • disabled: на поле нельзя перейти и нельзя его изменить. Подпись и подсказка остаются читаемыми, чтобы в подсказке можно было объяснить, почему поле закрыто.
  • required и disabled задавайте у Field, а не у поля. Field перезаписывает собственные значения поля.

Field ничего не проверяет. Когда задать error и что в нём написать, решаете вы.

Подпись, подсказка и ошибки

<tk-field label="Card number" helper="The 16 digits on the front of your card">
  <tk-input inputmode="numeric" name="card" autocomplete="cc-number"></tk-input>
</tk-field>
<tk-input aria-label="Filter by name"></tk-input>
  • Field называет поле по label, а подсказку и ошибку добавляет в его описание. Клик по подписи переводит фокус в поле.
  • Если видимой подписи нет, обойдитесь без Field и задайте aria-label у поля. Только когда назначение поля понятно из того, что вокруг.
  • Каждому полю нужно одно из двух. Плейсхолдер никогда не заменяет подпись.
  • Search field сам называет себя «Search»; внутри Field это имя заменяет подпись Field.