views:

100

answers:

5

Given the following sample code:

$(document).ready(function(){
    $(":input").blur(function(){
        alert("The input type is:" );  //How would this look??????
    })
});

How can I detemine whether this is an input, select, text, etc?

This is not a real-world example but should suffice for the purposes of this question

+8  A: 
$(this).attr("type");

See jQuery's Selectors/Attribute documentation for additional information.

Jonathan Sampson
+1  A: 
$(this).attr("type");

for example:

$(document).ready(function(){
    $("input").blur(function(){
        alert("The input type is:" + $(this).attr("type"));
    })
});
Marius
A: 

This should work...

$(document).ready(function(){
    $("input").blur(function(){
        var type = this.type;
        alert("The input type is:" + type);
    })
});
Ryan
Why the downvote?
Ryan
+1 of course this works, and doesn't waste time wrapping this in $ again
just somebody
A: 

Why not go through and see what attribute/property would be most useful?

$(document).ready(function(){
    $("input").blur(function(){
        for (var x in this)
            alert(x + ":" + this[x]);
    })
});
Jamiec
+2  A: 

How can I deteminedetermine whether this is an input, select, text, etc?

Note that select, textarea, "etc" elements are not covered by $('input'). You probably rather want to use $(':input') to get them all.

$(document).ready(function(){
    $(':input').blur(function(){
        alert('The tag is:' + this.tagName);
        if (this.tagName == 'INPUT') {
           alert("The input type is:" + $(this).attr('type'));
        }
    })
});
BalusC