检查当前活动元素是否是任何类型的输入

时间:2016-04-07 07:19:50

标签: javascript vue.js

我试图检测当前活动元素是否是任何类型的输入字段。目前我有这个:

var activeElement = document.activeElement

if (activeElement && (activeElement.tagName.toLowerCase() === 'input' || 
    activeElement.tagName.toLowerCase() === 'textarea' || 
    activeElement.tagName.toLowerCase() === 'select' || 
    activeElement.tagName.toLowerCase() === 'button')) {
    return false
}

有更好的方法吗?我正在使用Vue JS,所以如果有一个Vue API的解决方案也可以。

2 个答案:

答案 0 :(得分:8)

您可以将要检查的所有元素类型放入数组中,并检查您的活动元素是否在其中:

var activeElement = document.activeElement;
var inputs = ['input', 'select', 'button', 'textarea'];

if (activeElement && inputs.indexOf(activeElement.tagName.toLowerCase()) !== -1) {
    return false;
}

答案 1 :(得分:-4)

使用Jquery,您可以尝试以下

if(elem.is('input')){
//yes it an input element.
}

如果要检查特定输入类型

if(elem.is('input:radio')){
//yes it an input type = 'radio' element.
}