Javascript 一种检查HTML5表单有效性的方法?

Javascript 一种检查HTML5表单有效性的方法?,javascript,forms,html,dom,Javascript,Forms,Html,Dom,是否可以根据我为html5表单设置的模式检查其输入元素是否有效?我知道psuedo类的东西。。但我希望能像这样: document.getElementById('RequestName')。有效 可以返回true或false 我真的希望我不需要创建javascript来重新验证这些东西。您可以使用 它将在客户端验证它,所以不需要在客户端再次验证它 但是,请确保在服务器端再次执行此操作 还要注意的是,由于浏览器兼容性目前相当差,JavaScript是验证客户端的标准。有两种方法可以检查有效性

是否可以根据我为html5表单设置的模式检查其输入元素是否有效?我知道psuedo类的东西。。但我希望能像这样:
document.getElementById('RequestName')。有效
可以返回
true
false

我真的希望我不需要创建javascript来重新验证这些东西。

您可以使用

它将在客户端验证它,所以不需要在客户端再次验证它

但是,请确保在服务器端再次执行此操作


还要注意的是,由于浏览器兼容性目前相当差,JavaScript是验证客户端的标准。

有两种方法可以检查有效性

  • inputElement.checkValidity()
    返回
    true
    false
  • inputElement.validity
    返回有效性状态对象
    inputElement.validity.valid
    返回
    true/false
  • 除了使用keyup,还可以使用“input”事件。实现了约束验证API的所有浏览器也实现了输入事件

    如果您使用上面的选项1,Opera在这里有一个bug,并将显示其验证提示。所以你应该用2

    我已经创建了一个html5表单库,它实现了所有未知的功能,以解决html5浏览器中的问题。所以一切都像规范中定义的那样工作,但它是建立在jQuery之上的。
    ()。

    为了补充,您可以检查每个元素是否无效,例如,通过以下代码在第一个无效元素中设置焦点:

    var Form = document.getElementById('FormID');
    if (Form.checkValidity() == false) {
        var list = Form.querySelectorAll(':invalid');
        for (var item of list) {
            item.focus();
        }
    }
    

    谢谢,我试图避免使用任何框架,我的模式属性已经设置好了。我希望可以通过DOM访问输入元素,并确定该元素是否为value。是的,我知道:)我已经进行了相同的设置,我希望避免使用任何JQuery表单验证程序。我知道我可以为自己设置验证的模式或类型。我已经做到了。但我想在输入元素有效后调用函数。我正在侦听元素上的“onKeyUp”事件,但无法验证它们是否确实有效。我有CSS来传达元素的有效性,但这还不够。@Henry你可以循环使用
    输入
    元素,提取它们的
    模式
    属性并测试生成的正则表达式。是的-这正是我想要避免的:)我确实找到了答案:函数checkValid(){document.getElementById('email').validity.valid;};在Chrome和iOS 4.3中可以使用:)谢谢Alex!@Henry啊,是的,我在那里看到了这个属性,并打算提到它:)嗯,我只是想要一个向后兼容的checkValidity插件。似乎你的库有太多内置函数,文档很难阅读。我认为
    更改
    event更适合于有效性检查。有没有办法在HTML模式中使用标志(例如,
    i
    )?