如何检测输入类型

时间:2013-06-10 19:27:41

标签: javascript html5

在这里似乎无法找到一个无Modernizr的解决方案,但是如何检测对特定输入类型的支持,而不是属性?

例如,对于属性:

var supportsRequired = 'required' in document.createElement('input')
if (supportsRequired) {
    // support
} else {
    // no support
}

使用输入类型有一种简单的方法吗?我不想做的一件事是,如果不支持,则“交换”输入类型。有没有类似的东西,只测试?...

var supportsEmailType = 'email' in input.type
if (supportsEmailType) {
    // support
} else {
    // no support
}

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

来自here

  

如果您的浏览器支持该特定输入类型,则type属性将保留您设置的值。如果您的浏览器不支持该特定输入类型,它将忽略您设置的值,并且type属性仍为“text”。

这将正确检测是否支持“电子邮件”类型,您可以重复使用该功能来检测其他类型:

if (supportsInputType('email')) {
    // support
} else {
    // no support
}

function supportsInputType(type){
    var i = document.createElement('input');
    i.setAttribute('type', type);
    return i.type === type;
}