我已经遇到这个问题几次了,非常令人恼火。在Dojo中,有一个必填属性来触发表单验证。HTML5现在也使用了同样的属性。问题在于,HTML5不关心required=的值是什么,required="anything"都表示必填。
因此,在我的表单元素上,如果我有required="false"来告诉Dojo我不想进行验证,在某些情况下,在Chrome和Firefox上,HTML5验证会运行该输入字段。
我尝试过使用HTML5 novalidate属性,但似乎如果存在required属性,则会忽略它。
我想我应该提一个问题。如何完全禁用HTML5验证?或者换句话说,为什么没有指定HTML5文档类型时会运行HTML5验证。
谢谢。
以下是问题的完整示例。请在Firefox或Chrome中打开。
因此,在我的表单元素上,如果我有required="false"来告诉Dojo我不想进行验证,在某些情况下,在Chrome和Firefox上,HTML5验证会运行该输入字段。
我尝试过使用HTML5 novalidate属性,但似乎如果存在required属性,则会忽略它。
我想我应该提一个问题。如何完全禁用HTML5验证?或者换句话说,为什么没有指定HTML5文档类型时会运行HTML5验证。
谢谢。
以下是问题的完整示例。请在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>