【问题标题】:Use form validation javascript only when browser can not validate form仅当浏览器无法验证表单时才使用表单验证 javascript
【发布时间】:2013-10-24 13:22:10
【问题描述】:

这听起来可能是非常基本和愚蠢的问题,但我想知道这是否可能,如果可以,那么如何。

现在,所有新的网络浏览器都使用 HTML5 集成,当我定义

<input type="number" name="numericInput" />

<input type="email" name="email">

chrome / FF 等将为给定的输入验证它,否则将需要一些 javascript 或 jQuery 表单验证方法。

我想知道的是,只有在浏览器中未启用这些 html5 功能进行验证时,我是否可以使用表单验证 JS/jQuery 的任何方法?
感谢您的帮助! :)

【问题讨论】:

标签: javascript html validation browser


【解决方案1】:
var hasBrowserValidation = (typeof document.createElement('input').checkValidity == 'function');

if(hasBrowserValidation){
    //validate form
} 

【讨论】:

  • 你能解释一下吗?特别是,我们为什么要在这里创建input 元素(我了解 checkValidity 部分,但其余的只是飞翔!!!:()
  • 如果输入的方法checkValidity的类型是function - 这意味着浏览器内部有验证功能。如果浏览器没有这样的方法 checkValidity 将是未定义的。您可以使用 $('input')[0] 代替 document.createElement('input')。任何输入都可以。但是,如果您通过 jQuery 选择器搜索所有输入,则它不如在文档中创建新元素那么快(这就是我使用 .createElement 方法的原因)
  • 所以如果我有一个包含所有HTML5 input types 的表单,这个var hasBrowserValidation = (typeof document.createElement('input').checkValidity == 'function'); 会检查所有这些还是我需要在某个循环中运行?
猜你喜欢
  • 2013-05-20
  • 2012-03-13
  • 2018-10-10
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多