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

Pri*_*ome 6 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
}
Run Code Online (Sandbox Code Playgroud)

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

put*_*nde 10

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

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

if (activeElement && inputs.indexOf(activeElement.tagName.toLowerCase()) !== -1) {
    return false;
}
Run Code Online (Sandbox Code Playgroud)