25

Javascript では、id(フォーマット内の) 要素の が指定された場合、要素の がドロップダウン リスト要素またはテキスト入力要素を参照しているStringかどうかを確認するにはどうすればよいですか?id

がドロップダウン リスト ( ) 要素またはテキスト入力要素を参照しているtrue場合、関数は返されます。id<select>false

4

4 に答える 4

41

使用してみてください: document.getElementById('idNameGoesHere').tagName

したがって、関数は次のようになります。

function isSelectOrTextField(idName) {
    var element = document.getElementById(idName);
    if(element.tagName === 'SELECT') {return true;}
    if(element.tagName === 'INPUT' && element.type === 'text') {return true;}
    return false;
}

これを展開して確認することもでき<textarea>ます。

編集:または、使用していて、より適切にフォーマットされているため、 jbabeyの回答nodeNameを選択してください。

どうやらnodeNameより広いブラウザサポートを持っています。

于 2012-07-10T15:05:41.140 に答える
30

すでに jquery が含まれている場合は、 is 関数を使用できます。

$('#myid').is('input, select')

または多分

$('#myid').is('input, textarea, select')

テキストエリアも含めたい場合

また

$('#myid').is('input:not([type="button"]), textarea, select')

(これは、テキストまたはドロップダウン、またはボタンではない入力の場合に true を返します)。

jquery セレクターのすべての力を利用して、クエリを正確なニーズに適合させることができます。

デモンストレーション: http://jsfiddle.net/ELuEJ/ (htmlを変更してみてください)

于 2012-07-10T15:05:27.487 に答える
8

これを決定するには、DOM 要素のnodeNameおよびプロパティを使用できます。type外部ライブラリは必要ありません。

var isSelectOrTextInput = function (element) {
    var nodeName = element.nodeName;

    return nodeName === 'SELECT' || 
        (nodeName === 'INPUT' && 
         element.type.toLowerCase() === 'text');
};

作業サンプル: http://jsfiddle.net/ytHQD/

于 2012-07-10T15:14:09.910 に答える
0
$('#myId')[0].tagName

dom 要素を取得して、tagName を確認できます

于 2012-07-10T15:08:43.157 に答える