2013-06-20 38 views
4

JQuery验证拦截所需的属性,例如需要HTML5输入 - 如何禁用

<input type="text" required /> 

这将强制客户端验证这个字段很棒。现在这也是HTML5规范的一部分,并且会导致浏览器支持即使禁用JavaScript也显示验证消息。

在我的应用程序已经建立了服务器端验证,我很高兴有这么我想停止这种行为。所以我的问题是如何禁用此HTML5表单验证?

更新 似乎有一些混淆,基本上我很满意JQuery验证解释和验证解雇,很棒。但是,如果用户禁用JavaScript,我希望验证回退到我已经编写的服务器端验证。但是,由于JQuery Validate和HTML5共享相同的标记,因此它不会提交表单,而是显示我希望禁用的HTML5验证消息。这有意义吗?

+4

删除'required'属性? –

+0

你为什么要禁用它?客户端验证通常应该是可选的,预先检查用户的舒适度,而不是服务器端验证的替代。只有当您希望让用户提交无效数据(数据将被您的服务器端验证拒绝)时,您应该禁用客户端验证(通过删除'required'属性)。 –

+0

查看我的更新,原因。 – baynezy

回答

10

添加NOVALIDATE参数在表格对象来停止浏览器验证的形式。

<form action="test.do" novalidate> 
    <input type="text" required /> 
</form> 
+0

谢谢。这很有用。 – baynezy

0

HTML5兼容的浏览器将本地解释,作为一个必填字段,所以不是一个真正的办法阻止它。通过添加它你说,这是必需的。

这是一个想法,你可以尝试。还有另一个属性“模式”,您可以在其中提供验证表达式。也许如果你让这个接受一切,那么来自浏览器的HTML5验证将会通过一切,并且仍然允许你的jquery验证工作。

<input type="url" required pattern="*" /> 

我还没有测试过这个,这是一个理论。如果它有效,那就太棒了。 )