web-dev-qa-db-ja.com

jQuery検索入力タイプ(だけでなく、選択用)

ラジオボタン、テキスト、および選択の入力タイプを見つける必要があります。 $(this).attr("type")xを返すので、<input type="x">を使用してあらゆる入力タイプを簡単に見つけることができます。

私の問題は、type属性を持たない<select>要素をサポートする必要があることです。最終目標は、ラジオ、テキスト、または選択のいずれかを返すことです。

私はこのようなことをしようと考えましたが、もっと良い方法があるかどうか興味がありました:

if ($(this).tagName == "input") {
    var result = $(this).attr("type");   //returns radio or text (the attr type)
} else {
    var result = $(this).tagName;        //returns select (the element type)
}

皆さんありがとう!

26
jaredrada

これを行うことができます( fiddle here )、ある種の使いやすいプラグインを作成します:

$.fn.getType = function(){ return this[0].tagName == "INPUT" ? this[0].type.toLowerCase() : this[0].tagName.toLowerCase(); }

そして、このように使用します

$(".element").getType(); // Will return radio, text, checkbox, select, textarea, etc (also DIV, SPAN, all element types)
$(".elList").getType(); // Gets the first element's type

これは、選択されている最初の要素のタイプを取得します。

その他の情報

セレクターが必要な場合は、これを使用できます。

$("input:text, input:radio, select");

または、すべてのフォームコントロールを選択します( 詳細 ):

$(":input") // can return all form types
65
Niels

jQueryによるすべての種類の入力ボックスと選択ボックスの検索find:

$('#myForm').find('select,input').each(function(i,box){
     alert($(box).attr('name'));
}
2
Hasib Kamal