检测输入何时具有"只读"属性

zii*_*web 54 jquery

我想在输入具有'readonly'属性时发出警报.我试过这个:

  if($('input').attr('readonly') == 'readonly'){

    alert("foo");
  }
Run Code Online (Sandbox Code Playgroud)

我认为'如果'甚至不是最好的方法.

Ric*_*gan 127

最快的方法是使用.is()jQuery函数.

if ( $('input').is('[readonly]') ) { }
Run Code Online (Sandbox Code Playgroud)

使用[readonly]作为选择器将只检查该属性的元素上定义的.如果你想检查一个值,你可以使用这样的东西:

if ( $('input').is('[readonly="somevalue"]') ) { }
Run Code Online (Sandbox Code Playgroud)


小智 21

从JQuery 1.6开始,总是使用.prop()在这里阅读原因:http://api.jquery.com/prop/

if($('input').prop('readonly')){ }
Run Code Online (Sandbox Code Playgroud)

.prop()也可用于设置属性

$('input').prop('readonly',true);

$('input').prop('readonly',false);
Run Code Online (Sandbox Code Playgroud)


fad*_*ire 8

没有 jQuery 的 javascript 怎么样?

对于使用或不使用 jQuery 可以获得的任何输入,只需:

input.readOnly
Run Code Online (Sandbox Code Playgroud)

注意:介意驼峰式


pot*_*nch 5

检查“readonly”属性的当前值,如果它是“false”(字符串)或空(未定义或“”),则它不是只读的。

$('input').each(function() {
    var readonly = $(this).attr("readonly");
    if(readonly && readonly.toLowerCase()!=='false') { // this is readonly
        alert('this is a read only field');
    }
});
Run Code Online (Sandbox Code Playgroud)