Javascript约束API和字段集标记

Javascript约束API和字段集标记,javascript,html,validation,Javascript,Html,Validation,我正在使用JavaScript约束API来理解表单是如何验证和提交的 在阅读了W3C的文档并编写了一些代码之后,有一件事我不明白。引用文件: 列出的表单关联元素是约束验证的候选元素,除非条件禁止该元素进行约束验证。(例如,如果元素是输出或字段集元素,则禁止其进行约束验证。) 我知道字段集标记不应包含在内。但当我使用document.querySelectorAll(:invalid)时,输出包含Chrome和Firefox中的字段集标记,但不包含Safari中的字段集标记 Chrome中的输出:

我正在使用JavaScript约束API来理解表单是如何验证和提交的

在阅读了W3C的文档并编写了一些代码之后,有一件事我不明白。引用文件:

列出的表单关联元素是约束验证的候选元素,除非条件禁止该元素进行约束验证。(例如,如果元素是输出或字段集元素,则禁止其进行约束验证。)

我知道字段集标记不应包含在内。但当我使用
document.querySelectorAll(:invalid)
时,输出包含Chrome和Firefox中的字段集标记,但不包含Safari中的字段集标记

Chrome中的输出:
[字段集,输入#电子邮件,输入#电话,输入#姓名,文本区#消息,项目:功能]

输出Firefox:
[,]

输出Safari:
[​, 
​,​, 
​​​
]

有人能解释一下为什么会包括字段集吗

我是否需要以不同的方式针对:无效错误

当我想针对一个特定的:无效的错误消息时,我遇到了一些问题

谢谢

更新

我已经能够通过使用willValidate属性实现我的目标

var invalid = form.querySelectorAll(':invalid');
  for(var i = 0; i < invalid.length;i++){
      if(invalid[i].willValidate){
          // do stuff
      }
  }
var invalid=form.querySelectorAll(':invalid');
for(变量i=0;i
如果字段集的子元素都有效,字段集是否会消失?您好,Halcyon,是如果所有子元素都有效,则字段集不会出现在控制台中。使用“willValidate”属性解决。