HTML5新增了一个"invalid"事件,您可以向其中添加一个监听器:
document.addEventListener('invalid', function(e){
var element = $(e.target);
element.addClass("invalid");
element.parent().addClass("invalid");
}, true);
请注意,这个事件只在提交表单时起作用...如果我给输入框添加样式input:invalid { background: red }
,当用户开始输入并且其输入无效时就会应用该样式。这个事件只有在提交表单时才触发吗?我尝试将监听器添加到输入框本身而不是文档中,但没有成功。
我添加了一个监听器来应用输入框父元素的样式...现在,当用户更正错误时,它又变成有效了...我知道没有"valid"事件,那么我该怎么实现它呢?
好的,这里有一个示例 --> http://jsfiddle.net/Osoascam/ceArQ/7/ 看起来似乎只有在提交时才会触发无效监听器...我想知道是否有一种方式添加处理程序,就像焦点一样。试试敲一个
提前谢谢,
Óscar
checkValidity()
来触发它(如果该输入不合法,则仅会为该输入触发无效事件),或者在表单元素上调用checkValidity()
(将为每个不合法的输入触发无效事件)。因此,checkValidity()
可以从任何其他事件(例如焦点、模糊、更改等)的事件处理程序中调用,针对该事件目标(输入元素)或其父表单元素,以触发不合法字段的无效事件。 - munsellj