Как изменить текст предупреждения, когда шаблон используется во вводе?

Когда я использую шаблон во вводе следующим образом:

<input type="text" value="" pattern="(\d|(\d,\d{0,2}))"> 

Я получаю всплывающее предупреждение с текстом. Как я могу легко изменить этот текст?

Ответ 1

<input type="text" value="" pattern="(\d|(\d,\d{0,2}))" title="YOUR_WARNING_TEXT" > 

Ответ 2

Показанный текст может быть определен в атрибуте title тега input.

Ответ 3

<input type="text" value="" pattern="(\d|(\d,\d{0,2}))" oninvalid="this.setCustomValidity('ERROR_TEXT')" oninput="this.setCustomValidity('')"/>

Попробуйте этот код, исправленный для очистки после ввода...

Ответ 5

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('') как предлагается в большинстве других ответов, возвращается предупреждение по умолчанию.