Обязательное поле настраиваемой проверки
У меня одна форма с множеством полей ввода. Я поставил проверки html5
<input type="text" name="topicName" id="topicName" required />
когда я отправляю форму, не заполняя это текстовое поле, отображается сообщение по умолчанию, например
"Please fill out this field"
Может ли кто-нибудь помочь мне отредактировать это сообщение?
У меня есть код javascript для его редактирования, но он не работает
$(document).ready(function() {
var elements = document.getElementsByName("topicName");
for (var i = 0; i < elements.length; i++) {
elements[i].oninvalid = function(e) {
e.target.setCustomValidity("");
if (!e.target.validity.valid) {
e.target.setCustomValidity("Please enter Room Topic Title");
}
};
elements[i].oninput = function(e) {
e.target.setCustomValidity("");
};
}
})
Электронная почта пользовательских проверок
У меня следующая HTML-форма
<form id="myform">
<input id="email" name="email" type="email" />
<input type="submit" />
</form>
Сообщения проверки, которые мне нужны.
Обязательное поле: Пожалуйста, введите адрес
электронной почты Неверный адрес электронной почты: "testing @ .com" не является действительным адресом электронной почты. ( здесь введенный адрес электронной почты отображается в текстовом поле )
Я пробовал это.
function check(input) {
if(input.validity.typeMismatch){
input.setCustomValidity("'" + input.value + "' is not a Valid Email Address.");
}
else {
input.setCustomValidity("");
}
}
Эта функция не работает должным образом. У вас есть другой способ сделать это? Было бы признательно.
источник
Ответы:
Фрагмент кода
Поскольку этот ответ привлек очень большое внимание, вот хороший настраиваемый фрагмент, который я придумал:
использование
→ jsFiddle
Подробнее
defaultText
отображается изначальноemptyText
отображается, когда ввод пуст (был очищен)invalidText
отображается, когда ввод отмечен браузером как недопустимый (например, когда это недействительный адрес электронной почты)Каждому из трех свойств можно назначить строку или функцию.
Если вы назначаете функцию, она может принимать ссылку на элемент ввода (узел DOM) и должна возвращать строку, которая затем отображается как сообщение об ошибке.
Совместимость
Проверено в:
Старый ответ
Вы можете увидеть старую версию здесь: https://stackoverflow.com/revisions/16069817/6
источник
please fill out this field
Please enter email address
setCustomValidity()
пустые электронные письма только после того, как событие размытия сработало один раз, поэтому нам просто нужно вызвать его при загрузке DOM. См. Обновленный пример / jsFiddle.if (input.value == "") {
, чтобы вместо этого читатьif (input.value.trim() == "") {
- помогает мне.Вы можете просто добиться этого, используя атрибут oninvalid, ознакомьтесь с этим демонстрационным кодом
Демо-версия Codepen: https://codepen.io/akshaykhale1992/pen/yLNvOqP
источник
oninput="setCustomValidity('')"
: stackoverflow.com/a/16878766/1729850HTML:
JAVASCRIPT:
Демо:
http://jsfiddle.net/patelriki13/Sqq8e/
источник
Попробуй это:
Я тестировал это в Chrome и FF, и он работал в обоих браузерах.
источник
<b>Error: </b> Incorrect email address
.setCustomValidity("")
не помогает. Есть ли еще какой-то параметр, который нужно установить? Пожалуйста, порекомендуйте.Черт, я никогда не делал этого в HTML 5, но я попробую. Взгляните на эту скрипку.
Я использовал некоторые собственные события и свойства jQuery, HTML5 и настраиваемый атрибут во входном теге (это может вызвать проблемы, если вы попытаетесь проверить свой код). Я не тестировал во всех браузерах, но думаю, что это может сработать.
Это код JavaScript для проверки поля с помощью jQuery:
Ницца. Вот простая форма html:
Атрибут
requiredmessage
- это настраиваемый атрибут, о котором я говорил. Вы можете установить свое сообщение для каждого обязательного поля, потому что jQuery получит от него, когда отобразит сообщение об ошибке. Вам не нужно устанавливать каждое поле прямо в JavaScript, jQuery сделает это за вас. Кажется, с этим регулярным выражением все в порядке (по крайней мере, оно блокирует вашtesting@.com
! Ха-ха)Как вы можете видеть на скрипке, я провожу дополнительную проверку события формы отправки ( это тоже касается document.ready ):
Я надеюсь, что это сработает или поможет вам в любом случае.
источник
data-
префикс; напрdata-requiredMessage
. В jQuery это доступно с помощью$(element).data('requiredMessage')
; Я не знаю стандартный интерфейс DOM с головы до ног.У меня это хорошо работает:
и форма, в которой я его использую (усеченная):
источник
Вы можете настроить прослушиватель событий для «недопустимого» для всех входов одного типа или только для одного, в зависимости от того, что вам нужно, а затем настроить правильное сообщение.
Вторая часть скрипта, сообщение о действительности, будет сброшена, так как в противном случае невозможно будет отправить форму: например, это предотвратит запуск сообщения, даже если адрес электронной почты был исправлен.
Также вам не нужно настраивать поле ввода должным образом, поскольку «недействительный» будет активирован, как только вы начнете вводить ввод.
Вот скрипка для этого: http://jsfiddle.net/napy84/U4pB7/2/ Надеюсь, это поможет!
источник
Используйте атрибут "title" в каждом теге ввода и напишите на нем сообщение
источник
Просто нужно получить элемент и использовать метод setCustomValidity.
пример
источник
вы можете просто использовать атрибут oninvalid = " с привязкой к this.setCustomValidity () eventListener !
Вот мои демонстрационные коды! (Вы можете запустить его, чтобы проверить!)
ссылка на ссылку
http://caniuse.com/#feat=form-validation
https://www.w3.org/TR/html51/sec-forms.html#sec-constraint-validation
источник
Вы можете добавить этот сценарий для показа собственного сообщения.
Для другой проверки, такой как несоответствие шаблона, вы можете добавить дополнительное условие if else
лайк
есть и другие условия действительности, такие как rangeOverflow, rangeUnderflow, stepMismatch, typeMismatch, valid
источник