Что случилось с этим:
$ 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;
Этот вопрос задавали более года назад, но это хороший вопрос, который я недавно встретил ...
Мое решение состояло в том, чтобы использовать JavaScript для создания атрибута (я пошел с «data- invalid ") на <label>
каждого <input>
, <select>
и <textarea>
, содержащего validationMessage .
Затем некоторые CSS ...
label:after {
content: attr(data-invalid);
...
}
... отображает сообщение об ошибке.
Ограничения
Это работает только при условии, что каждый элемент имеет метку. Это не сработает, если вы поместите атрибут на самом элементе, потому что элементы <input>
не могут иметь псевдоэлементы :after
.
Демо
Теперь вы можете использовать метод HTMLFormElement.reportValidity (), на данный момент он реализован в большинстве браузеров, кроме Internet Explorer (см. Совместимость браузера в MDN). Он сообщает об ошибках достоверности без запуска события отправки, и они отображаются одинаково.
Как напомнил @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;
}
}