Например, в моих формах я хотел бы использовать новые типы форм HTML5 <input type="url" />
( подробнее о типах здесь ).
Проблема в том, что Chrome хочет быть очень полезным и проверять эти элементы для меня, за исключением того, что он отстой. Если он не проходит встроенную проверку, там нет сообщения или указания, кроме элемента, получающего фокус. Я предварительно заполняю элементы URL с помощью "http://"
, и поэтому моя собственная пользовательская проверка просто обрабатывает эти значения как пустые строки, однако Chrome отклоняет это. Если бы я мог изменить правила валидации, это тоже сработало бы.
Я знаю, что я мог бы просто вернуться к использованию, type="text"
но я хочу приятные улучшения, используя эти новые типы предложений (например: он автоматически переключается на пользовательскую раскладку клавиатуры на мобильных устройствах):
Итак, есть ли способ отключить или настроить автоматическую проверку?
$('[inputmode]').each(function () { this.attr({type: this.attr('inputmode'), novalidate: true}) });
inputmode
бы. Делая все по-своему, вы все еще не можете (например) прочитать нечисловые значения, которые пользователь вводит в поле ввода типа number
. Например, попробуйте ввести что-нибудь нечисловое в текстовое поле этой скрипки и нажать кнопку.
<input type='number'>
вообще не принимает нечисловые значения?
inputmode
атрибут , который - если я правильно понимаю, что я прочитал - может использоваться для указания того, какой тип клавиатуры следует предлагать пользователю, когда он взаимодействует с полем, без каких-либо правил валидации. В какой-то момент в будущем использованиеinputmode
атрибута вместоtype
атрибута, вероятно, будет правильным решением этой проблемы, но пока нет.