I want to throw an alert when an input has a 'readonly' attribute. I have tried this:
if($('input').attr('readonly') == 'readonly'){
alert("foo");
}
I think that 'if' is not even the best way to do it.
fastest way is to use the .is() jQuery function.
if ( $('input').is('[readonly]') ) { }
using [readonly] as a selector simply checks if the attribute is defined on your element. if you want to check for a value, you can use something like this instead:
if ( $('input').is('[readonly="somevalue"]') ) { }
Since JQuery 1.6, always use .prop() Read why here: http://api.jquery.com/prop/
if($('input').prop('readonly')){ }
.prop() can also be used to set the property
$('input').prop('readonly',true);
$('input').prop('readonly',false);
what about javascript without jQuery ?
for any input that you can get with or without jQuery, just :
input.readOnly
note : mind camelCase