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

Check if currently active element is any kind of input

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

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 也可以。

使用 Jquery 你可以尝试以下

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

如果您想要检查特定输入类型

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

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

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

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