我已经遇到过几次这种情况,而且越来越烦人。在 Dojo 中有一个 required 属性来触发表单验证。 HTML 5 现在也使用相同的属性。问题出现是因为 HTML5 不关心 required= 的值是什么 required="anything"意味着它是必需的。
所以在我的表单元素上,如果我有 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>
最佳答案
回答你的第二个问题......
Why is HTML 5 validation running if I'm not specifying an HTML 5 doc type?
“HTML5 DOCTYPE”不是识别“HTML5 文档”的方法。它只是最短的 DOCTYPE,可确保在浏览器中触发标准模式(这就是在 HTML5 规范中选择它的原因)。
另外,没有“HTML5 文档”这样的东西。该文档要么是用 HTML 编写的,要么不是。您可以说您的 HTML 文档包含一些在 HTML5 规范中首次定义的特性(我们可以称它们为“HTML5 特性”)。
浏览器不会对具有“HTML5 文档类型”的 HTML 文档应用不同的规则。
关于html - 如果我没有 HTML 5 文档类型,为什么会触发 HTML 5 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6348093/