我想在输入具有'readonly'属性时抛出警报。我试过这个:
if($('input').attr('readonly') == 'readonly'){
alert("foo");
}
我认为'如果'甚至不是最好的方法。
答案 0 :(得分:121)
最快的方法是使用.is()
jQuery函数。
if ( $('input').is('[readonly]') ) { }
使用[readonly]
作为选择器只需检查属性是否已在元素上定义。如果你想检查一个值,你可以改用这样的东西:
if ( $('input').is('[readonly="somevalue"]') ) { }
答案 1 :(得分:18)
从JQuery 1.6开始,总是使用.prop() 在此处阅读原因:http://api.jquery.com/prop/
if($('input').prop('readonly')){ }
.prop()也可用于设置属性
$('input').prop('readonly',true);
$('input').prop('readonly',false);
答案 2 :(得分:3)
您可以使用属性选择器,然后测试长度:
$('input[readonly]').length == 0 // --> ok
$('input[readonly]').length > 0 // --> not ok
答案 3 :(得分:3)
检查“readonly”属性的当前值,如果它是“false”(字符串)或空(undefined或“”)那么它不是只读的。
$('input').each(function() {
var readonly = $(this).attr("readonly");
if(readonly && readonly.toLowerCase()!=='false') { // this is readonly
alert('this is a read only field');
}
});
答案 4 :(得分:3)
尝试一种简单的方法:
if($('input[readonly="readonly"]')){
alert("foo");
}
答案 5 :(得分:1)
不带jQuery的javascript怎么样?
对于使用或不使用jQuery可以获得的任何输入,只需:
input.readOnly
注意:记念驼峰
答案 6 :(得分:0)
试试这个:
if($('input').attr('readonly') == undefined){
alert("foo");
}
如果不存在,则js中将undefined
答案 7 :(得分:0)
在香草/纯javascript中,您可以进行以下检查-
var field = document.querySelector("input[name='fieldName']");
if(field.readOnly){
alert("foo");
}