检测伪类:从javascript中无效

检测伪类:从javascript中无效,javascript,html,css,pseudo-class,Javascript,Html,Css,Pseudo Class,有没有办法通过Javascript在输入元素上检测伪类的“外观”:无效 换句话说,当输入元素上出现:invalid伪类时,如何触发某些Javascript代码运行?有一个无效事件,您可以侦听该事件 当检查了可提交元素且该元素不满足其约束时,将触发无效事件。可提交元素的有效性在提交其所有者表单之前或在调用元素或其所有者表单的checkValidity()之后进行检查 您还可以访问一些属性来检查元素的有效性,如果这是您想要的 .validity.valid 元素满足所有约束验证,因此被认为是有效的

有没有办法通过Javascript在
输入
元素上检测伪类
的“外观”:无效


换句话说,当
输入
元素上出现
:invalid
伪类时,如何触发某些Javascript代码运行?

有一个无效事件,您可以侦听该事件

当检查了可提交元素且该元素不满足其约束时,将触发无效事件。可提交元素的有效性在提交其所有者表单之前或在调用元素或其所有者表单的checkValidity()之后进行检查

您还可以访问一些属性来检查元素的有效性,如果这是您想要的

.validity.valid

元素满足所有约束验证,因此被认为是有效的

编辑:自从我回答这个问题以来,我学到了一些东西

.validity.valid实际上是约束的一部分,对它的支持充其量也只是约束的一部分,这太糟糕了(API中有很多很棒的东西)


但是,似乎工作正常的是,它返回当前无效的所有表单元素的非活动节点列表。您可以在表单元素上调用
addEventListener('change'
.etc等),并在触发时查询validty。

也许您不能使用jQuery,但您尝试了
$('input')。它(':invalid'))
?您是否尝试过
!input.validity.valid
?在标记可用/更合适的地方使用HTML可能会导致奇怪的帖子格式。请参阅@jldupont:这是一个标准,而且每个启用HTML5验证的浏览器都支持它。