Когда атрибут type элемента ввода input находится в состоянии URL, применяются правила этого раздела.
Элемент ввода input представляет собой элемент управления для редактирования одного абсолютного URL-адреса, заданного в значении элемента.
Если элемент является изменяемым (mutable), пользовательский агент должен позволить пользователю изменить URL-адрес, представленный его значением. Пользовательские агенты могут позволить пользователю установить значение в строку, которая не является допустимым абсолютным URL-адресом, но могут также или вместо этого автоматически экранировать символы, введённые пользователем, чтобы значение всегда было допустимым абсолютным URL-адресом (даже если это не фактическое значение, видимое и редактируемое пользователем в интерфейс). Пользовательские агенты должны позволять пользователю устанавливать значение в пустую строку. Агенты пользователя не должны разрешать пользователям вставлять в значение символы ПЕРЕВОДА СТРОКИ U+000A (LF) или возврата КАРЕТКИ U+000D (CR).
Атрибут value, если он указан и не пуст, должен иметь значение, которое является допустимым URL-адресом, потенциально окружённым пробелами, который также является абсолютным URL-адресом.
Алгоритм очистки значения выглядит следующим образом: удалите новые линии из значения, затем удалите начальные и конечные пробелы ASCII из значения.
Проверка ограничений: хотя значение элемента не является ни пустой строкой, ни действительным абсолютным URL-адресом, элемент страдает от несоответствия типов.
Детали учёта
К элементу применяются следующие общие атрибуты содержимого элемента ввода input, атрибуты IDL и методы:
Контентные атрибуты:
autocomplete
(автозаполнение), list
, (список), maxlength
, (максимальная длина), minlength
, (минимальная длина), pattern
, (шаблон), placeholder
, (заполнитель), readonly
, (атрибуты содержимого только для чтения), required
, (обязательные атрибуты), and size
, (размер);
IDL атрибуты:
list
, selectionStart
, selectionEnd
, selectionDirection
, value
;
Методы:
select(), setRangeText() и setSelectionRange().
IDL-атрибут value находится в режиме значения.
Применяются события ввода input и изменения change.
Следующие атрибуты содержимого не должны указываться и не применяются к элементу: accept, alt, checked, dirname, formaction, formenctype, formmethod, formnovalidate, formtarget, height, max, min, multiple, src, step и width.
К элементу не применяются следующие IDL-атрибуты и методы: checked, files, valueAsDate и valueAsNumber IDL-атрибуты; методы stepDown() и stepUp().
Пример
Если документ содержал следующую разметку:
<input type=«url» name=«location» list=«urls»>
<datalist id=«urls»>
<option label=«MIME: Format of Internet Message Bodies» value=«https://www.rfc-editor.org/rfc/rfc2045»>
<option label=«HTML» value=«https://html.spec.whatwg.org/»>
<option label=«DOM» value=«https://dom.spec.whatwg.org/»>
<option label=«Fullscreen» value=«https://fullscreen.spec.whatwg.org/»>
<option label=«Media Session» value=«https://mediasession.spec.whatwg.org/»>
<option label=«The Single UNIX Specification, Version 3» value=«http://www.unix.org/version3/»>
</datalist>
… и пользователь набрал «spec.w«, и пользовательский агент также обнаружил, что пользователь посетил «https://url.spec.whatwg.org/#url-parsing» и «https://streams.spec .whatwg.org/» в недавнем прошлом, то рендеринг может выглядеть так:
Первые четыре URL-адреса в этом примере состоят из четырех URL-адресов в указанном автором списке, которые соответствуют тексту, введённому пользователем, отсортированному определённым способом (возможно, по тому, как часто пользователь обращается к этим URL-адресам). Обратите внимание, как агент пользователя использует информацию о том, что значения являются URL-адресами, чтобы позволить пользователю опустить часть схемы и выполнить интеллектуальное сопоставление имени домена.
Последние два URL-адреса (и, вероятно, многие другие, учитывая, что полоса прокрутки указывает на то, что доступно больше значений) являются совпадениями из данных истории сеансов пользовательского агента. Эти данные недоступны для страницы DOM. В этом конкретном случае UA не имеет заголовков для предоставления этих значений.
Информационные ссылки
Стандарт HTML — Раздел «4.10.5.1.4 URL state (type=url)» — https://html.spec.whatwg.org/multipage/input.html#url-state-(type=url)