2016-04-07 13 views
2

現在アクティブな要素が何らかの入力フィールドであるかどうかを検出しようとしています。現在、私はこれを持っています:現在アクティブな要素が何らかの入力であるかどうかを確認します

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のソリューションもあればOKです。 jQueryを使って

+0

「選択」、「ボタン」についてはどうですか? – Rayon

+0

@RayonDabreああ、そうだね、これも...私のコードを更新した –

答えて

3

のチェックをしたい場合あなたは配列にチェックしたいすべての要素タイプを置くことができ、次の

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

を試すことができますし、アクティブな要素が含まれているかどうか確認してください:

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

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

あなたは、特定の入力タイプ

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

jQueryを使わない –

関連する問題