如果我没有HTML 5 doctype,为什么会触发HTML 5验证?

时间:2011-06-14 18:15:44

标签: html5 dojo validation

我现在已经遇到过这几次了,而且它变得烦人了。在Dojo中,有一个必需的属性来触发表单验证。 HTML 5现在也使用相同的属性。问题出现了,因为HTML5并不关心required =的值是什么=“任何”意味着它是必需的。

所以在我的表单元素上,如果我需要=“false”来指示dojo,我不希望这个验证。在Chrome和Firefox的某些情况下,HTML 5验证正在该输入字段上运行。

我已经尝试了HTML 5 novalidate属性,但似乎必需的属性就是它忽略它。

我想我应该问一个问题。如何完全禁用HTML5验证?或换一种方式如果我没有指定HTML 5文档类型,为什么HTML 5验证会运行。

由于

以下是该问题的完整示例。在Firefox或Chrome中打开它

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
  <script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/dojo/1.4.0/dojo/dojo.xd.js"></script>

  <script language="javascript" type="text/javascript">
    dojo.require("dojo.parser");
    dojo.require("dijit.form.Form");

    dojo.addOnLoad(function () {
      dojo.parser.parse();
    });
  </script>
  <form novalidate="novalidate" dojoType="dijit.form.Form">
  <select required="false" formnovalidate="formnovalidate">
    <option value="" >Please Choose A Category...</option>
    <option value="one" >One</option>
  </select>
  <button type="submit">Save</button>
  </form>
</body>
</html>

2 个答案:

答案 0 :(得分:5)

回答你的第二个问题......

  

为什么要运行HTML 5验证呢?   我没有指定HTML 5 doc类型?

“HTML5 DOCTYPE”不是识别“HTML5文档”的方法。它只是最短的DOCTYPE,可确保在浏览器中触发标准模式(这就是为什么在HTML5规范中选择它)。

此外,没有“HTML5文档”这样的东西。该文档是用HTML编写的。您可以说HTML文档包含HTML5规范中首次定义的一些功能(我们可以称之为“HTML5功能”)。

浏览器对具有“HTML5 doctype”的HTML文档应用不同的规则。

答案 1 :(得分:2)

您可以将novalidate放在form标记内,或将formnovalidate放在任何个人input内,以停用验证。