Quiero lanzar una alerta cuando una entrada tiene un atributo de 'solo lectura'. He intentado esto:
if($('input').attr('readonly') == 'readonly'){ alert("foo"); }Creo que 'si' ni siquiera es la mejor manera de hacerlo.
La forma más rápida es usar la función .is() jQuery.
if ( $('input').is('[readonly]') ) { } usar [readonly] como selector simplemente verifica si el atributo está definido en su elemento. si desea verificar un valor, puede usar algo como esto en su lugar:
if ( $('input').is('[readonly="somevalue"]') ) { }Desde JQuery 1.6, siempre use .prop() Lea por qué aquí: http://api.jquery.com/prop/
if($('input').prop('readonly')){ }.prop() también se puede usar para establecer la propiedad
$('input').prop('readonly',true); $('input').prop('readonly',false);¿Qué pasa con javascript sin jQuery?
para cualquier entrada que pueda obtener con o sin jQuery, simplemente:
input.readOnlynota: mente camelloCase