Javascript Constraint API和fieldset标记

时间:2015-01-10 13:27:50

标签: javascript html validation

我正在使用JavaScript Constraint API来了解如何验证和提交表单。

在W3C阅读文档并编写一些代码后,有一件我不理解的特殊事情。引用文档:

  

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

我了解不应包含字段集标记 。但是当我document.querySelectorAll(:invalid)时,输出包含Chrome和Firefox中的fieldset标记,但不包含Safari。

Chrome中的输出:[fieldset, input#email, input#telephone, input#name, textarea#message, item: function]

输出Firefox:[ <fieldset>, <input#email>, <input#telephone>, <input#name>, <textarea#message> ]

输出Safari:[<input required type=​"email" id=​"email" name=​"email" placeholder=​"Your email">​, <input required type=​"tel" pattern=​"\d+" id=​"telephone" namer=​"telephone" placeholder=​"Your telephone">​,<input required type=​"text" id=​"name" name=​"name" placeholder=​"Your name">​, <textarea required type=​"tel" id=​"message" name=​"message" placeholder=​"Your message">​​</textarea>​ ]

任何人都可以解释为什么包含字段集吗?

我是否需要以不同的方式定位:无效错误?

当我想要定位到特定的:无效的错误消息时,我遇到了问题。

感谢。

更新

我已经通过使用willValidate属性实现了我的目标。

var invalid = form.querySelectorAll(':invalid');
  for(var i = 0; i < invalid.length;i++){
      if(invalid[i].willValidate){
          // do stuff
      }
  }

0 个答案:

没有答案