旧版浏览器是否支持HTML5?

4

我正在制作一个网页,想要使用 HTML 5 的 setCustomValidity。测试浏览器是否支持它很容易:

var inpt = document.getElementsByTagName("input")[0]; // etc.
if(typeof(inpt.setCustomValidity) != 'function')
  // workaround here

但我不确定是否有任何合理的方法来处理这个问题。当然,我可以写一个setCustomValidity函数来处理这种情况,但它没有上下文(对吧?)来处理事件。除非也许我有函数使用它们自己的名称调用它?
如果有一个处理这个问题的库(例如Modernizr等),那就太好了。如果有一个好的解决方法,我很乐意使用它。
我有一些丑陋的hack方法,但如果可能的话,我更喜欢以正确的方式解决这个问题,无论那是什么。
2个回答

3

那些看起来很棒。您知道它们是否适用于 pattern="" 吗? - Charles
模式在支持的属性列表中,所以我猜是可以的;不过我没有使用过它的经验。 - fijter
第二个链接已经损坏。 - kevnk
我喜欢 formality,它最适合我的需求,希望能对其他人有所帮助。 - Patriks

1

我听说过Modernizr很棒,基于它所受到的关注,我肯定会建议你试一试。


1
它是否处理 setCustomValidity() - Charles
我在文档中找不到相关内容,但似乎这应该是一个很容易实现的功能。我建议下载并尝试一下。如果不起作用,那么编写自己的setCustomValidity扩展方法也不会太难。只需拥有一个全局二维数组,其中包含对象选择器和其消息。调用扩展方法时,可以将两者都推入数组中。在验证时,如果给定的文本框未正确验证,则使用数组作为参考,并设置焦点/显示消息。 - MoarCodePlz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接