ラジオボタン、テキスト、および選択の入力タイプを見つける必要があります。 $(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)
}
皆さんありがとう!
これを行うことができます( 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
jQueryによるすべての種類の入力ボックスと選択ボックスの検索find:
$('#myForm').find('select,input').each(function(i,box){
alert($(box).attr('name'));
}