Подтвердить что ты не робот

Обнаруживать, когда ввод имеет атрибут 'readonly'

Я хочу отправить предупреждение, когда вход имеет атрибут 'readonly'. Я пробовал это:

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

    alert("foo");
  }

Я думаю, что "если" даже не лучший способ сделать это.

4b9b3361

Ответ 1

Самый быстрый способ - использовать функцию .is() jQuery.

if ( $('input').is('[readonly]') ) { }

с помощью [readonly] в качестве селектора просто проверяет, определен ли атрибут для вашего элемента. если вы хотите проверить значение, вы можете использовать что-то вроде этого:

if ( $('input').is('[readonly="somevalue"]') ) { }

Ответ 2

Так как JQuery 1.6, всегда используйте .prop() Читайте, почему здесь: http://api.jquery.com/prop/

if($('input').prop('readonly')){ }

.prop() также может использоваться для установки свойства

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

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

Ответ 3

Вы можете просто использовать селектор атрибутов, а затем проверить длину:

$('input[readonly]').length == 0 // --> ok
$('input[readonly]').length > 0  // --> not ok

Ответ 4

Проверьте текущее значение вашего атрибута "только для чтения", если оно "ложно" (строка) или пустое (undefined или ""), тогда оно не является readonly.

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

Ответ 5

Попробуйте простой способ:

if($('input[readonly="readonly"]')){
   alert("foo");
}

Ответ 6

попробуйте следующее:

if($('input').attr('readonly') == undefined){
    alert("foo");
}

если его нет, будет undefined в js

Ответ 7

как насчет javascript без jQuery?

для любого ввода, который вы можете получить с или без jQuery, просто:

input.readOnly

примечание: разум верблюдов