HTML5表单必需属性。设置自定义验证消息?
document.addEventListener("DOMContentLoaded", function() { var elements = document.getElementsByTagName("INPUT"); for (var i = 0; i < elements.length; i++) { elements[i].oninvalid = function(e) { e.target.setCustomValidity(""); if (!e.target.validity.valid) { e.target.setCustomValidity("This field cannot be left blank"); } }; elements[i].oninput = function(e) { e.target.setCustomValidity(""); }; } })
如建议的@itpastorn,我已将其从Mootools更改为原生JavaScript,但是如果必要,您应该能够找到Mootools的等效项。
如果setCustomValidity
不是空字符串,则会导致字段被视为无效;因此,在测试有效性之前必须清除它,不能只是设置并忘记它。
如下所述,则需要在invalid
之外的某个事件中清除自定义有效性,否则可能需要额外通过oninvalid
处理程序进行一次通过以清除它。