【问题标题】:HTML5 input required - how to disable需要 HTML5 输入 - 如何禁用
【发布时间】:2013-06-20 20:37:51
【问题描述】:

JQuery Validate 拦截所需的属性,例如

<input type="text" required />

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

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

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

【问题讨论】:

  • 删除required 属性?
  • 为什么要禁用它?客户端验证通常应该只是为了用户舒适度而进行的可选预检查,而不是替代服务器端验证。仅当您想让用户提交无效数据(随后将被服务器端验证拒绝的数据)时,才应禁用客户端验证(通过删除 required 属性)。
  • 查看我的更新原因。

标签: jquery html jquery-validate


【解决方案1】:

在表单对象中添加 novalidate 参数以停止浏览器验证表单。

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

【讨论】:

    【解决方案2】:

    兼容 HTML5 的浏览器会将其本地解释为必填字段,因此实际上没有办法阻止它。添加它就是说,这是必需的。

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

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

    我没有对此进行测试,这是一个理论。如果它有效,那就太棒了。 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-01
      • 2021-07-13
      • 2019-09-18
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2013-04-09
      相关资源
      最近更新 更多