Ответ 1
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))" title="YOUR_WARNING_TEXT" >
Когда я использую шаблон во вводе следующим образом:
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))">
Я получаю всплывающее предупреждение с текстом. Как я могу легко изменить этот текст?
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))" title="YOUR_WARNING_TEXT" >
Показанный текст может быть определен в атрибуте title
тега input
.
<input type="text" value="" pattern="(\d|(\d,\d{0,2}))" oninvalid="this.setCustomValidity('ERROR_TEXT')" oninput="this.setCustomValidity('')"/>
Попробуйте этот код, исправленный для очистки после ввода...
Этот вопрос уже был дан в прошлом. Обратите внимание на следующий URL-адрес для ответа: атрибут формы HTML5. Установить пользовательское подтверждение проверки?
title
добавляется к предупреждению шаблона. Просто помните, что предупреждения переведены на язык браузера, что может сделать английскую строку странной.
Это единственный способ полностью заменить предупреждение:
<input type="text" required pattern="PATTERN" oninvalid="invalid" oninput="invalid">
/**
* Shows a custom validity message
* @param e - event
*/
function invalid(e) {
if (!/PATTERN/.test(e.target.value)) { // somehow validity.valid returns a wrong value
e.target.setCustomValidity('INVALID')
} else {
e.target.setCustomValidity('')
}
}
Как только форма проверена, предупреждение продолжает появляться, пока значение не соответствует шаблону. Если событие input
просто устанавливает setCustomValidity('')
как предлагается в большинстве других ответов, возвращается предупреждение по умолчанию.