Показать HTML, встроенный в сообщение об ошибке проверки с Javascript [дубликат]

Что случилось с этим:

  $ cat aa.lua #! / usr / bin / lua if (arg ~ = nil и arg [-1] ~ = nil), затем напечатать "  main "else print" library "end $ ./aa.lua main $ ./aa.lua arg1 arg2 main $ cat bb.lua #! / usr / bin / lua print (" in bb ") $ lua -laa bb.  lua library in bb $ lua Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio & gt;  требуется библиотека «aa» & gt;   
10
задан Pavlo 2 October 2013 в 12:35
поделиться

3 ответа

Этот вопрос задавали более года назад, но это хороший вопрос, который я недавно встретил ...

Мое решение состояло в том, чтобы использовать JavaScript для создания атрибута (я пошел с «data- invalid ") на <label> каждого <input>, <select> и <textarea>, содержащего validationMessage .

Затем некоторые CSS ...

label:after {
    content: attr(data-invalid);
   ...
}

... отображает сообщение об ошибке.

Ограничения

Это работает только при условии, что каждый элемент имеет метку. Это не сработает, если вы поместите атрибут на самом элементе, потому что элементы <input> не могут иметь псевдоэлементы :after.

Демо

http: // jsfiddle .net / u4ca6kvm / 2 /

3
ответ дан Ryan Holdren 15 August 2018 в 17:21
поделиться

Теперь вы можете использовать метод HTMLFormElement.reportValidity (), на данный момент он реализован в большинстве браузеров, кроме Internet Explorer (см. Совместимость браузера в MDN). Он сообщает об ошибках достоверности без запуска события отправки, и они отображаются одинаково.

11
ответ дан s16h 15 August 2018 в 17:21
поделиться

Как напомнил @Diego, вы можете использовать form.reportValidity (); Для поддержки IE и Safari этот полиполк работает:

if (!HTMLFormElement.prototype.reportValidity) {
    HTMLFormElement.prototype.reportValidity = function() {
      if (this.checkValidity()) return true;
      var btn = document.createElement('button');
      this.appendChild(btn);
      btn.click();
      this.removeChild(btn);
      return false;
    }
}
1
ответ дан Tobias Buschor 15 August 2018 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: