我现在已经遇到过这几次了,而且它变得烦人了。在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>
答案 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
内,以停用验证。