Есть ли способ потребовать, чтобы записи в двух полях формы совпадали с использованием HTML5? Или это все еще нужно делать с помощью javascript? Например, если у вас есть два поля пароля и вы хотите убедиться, что пользователь ввел одни и те же данные в каждое поле, есть ли какие-то атрибуты или другой код, который можно сделать для этого?
98
Ответы:
Не совсем с проверкой HTML5, но небольшой JavaScript может решить проблему, следуйте примеру ниже:
источник
oninput="check(this)"
в первое поле пароля и 2) измененияinput.value
функции наdocument.getElementById('password_confirm').value
. Так оно и сталоif (document.getElementById('password_confirm').value != document.getElementById('password').value)
Вы можете использовать шаблоны ввода с регулярными выражениями (проверьте совместимость с браузером )
источник
pattern
атрибут дляpassword_two
поля нужно опустить . Как и в настоящее время, если вы введете вpassword_two
поле пароль, который короче 6 символов , оставивpassword
пустым - будет отображатьсяPlease enter the same Password as above
сообщение проверки. Что может сбить с толку: то же самое произойдет, если вы введете в оба поля один и тот же пароль, который короче 6 символов.Простое решение с минимальным количеством javascript - использовать шаблон атрибута html (поддерживается большинством современных браузеров). Это работает, устанавливая образец второго поля на значение первого поля.
К сожалению, вам также нужно избегать регулярного выражения, для которого не существует стандартной функции.
источник
<input type="password" name="password" oninput="document.getElementById('confirm').pattern = this.value.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&')" required><input type="password" id="confirm" name="confirm" pattern="" title="Fields must match" required>
не читается, как ваш, но позволяет избежать отдельного скрипта / функции.Потребуется JavaScript, но объем кода можно свести к минимуму, используя промежуточный
<output>
элемент иoninput
обработчик формы для выполнения сравнения (шаблоны и проверка могут дополнить это решение, но здесь не показаны для простоты):источник
Не только HTML5, но и немного JavaScript.
Нажмите [здесь] https://codepen.io/diegoleme/pen/surIK
HTML
JAVASCRIPT
источник
Ответы, использующие шаблон и регулярное выражение, записывают пароль пользователя во входные свойства в виде обычного текста
pattern='mypassword'
. Это будет видно только в том случае, если инструменты разработчика открыты, но это все еще не кажется хорошей идеей.Другая проблема с использованием шаблона для проверки совпадения заключается в том, что вы, вероятно, захотите использовать шаблон, чтобы проверить правильность формы пароля, например, смешанные буквы и цифры.
Я также думаю, что эти методы не будут работать, если пользователь переключается между входами.
Вот мое решение, которое использует немного больше JavaScript, но выполняет простую проверку равенства, когда любой ввод обновляется, а затем устанавливает настраиваемую валидность HTML. Оба входа все еще можно протестировать на наличие шаблона, такого как формат электронной почты или сложность пароля.
Для реальной страницы вы должны изменить типы ввода на «пароль».
источник
Как уже упоминалось в других ответах, для этого нет чистого HTML5.
Если вы уже используете JQuery , это должно сделать то, что вам нужно:
источник