У своїх формах я б хотів використовувати нові типи форм 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
атрибута, ймовірно, буде правильним рішенням цієї проблеми - але поки що.