Исключить элемент с определенным атрибутом из селекторов jQuery - PullRequest
5 голосов
/ 10 декабря 2010

Я использую этот javascript для очистки ввода / текстовой области при фокусировке.

   $(document).ready(function() {
    $('input[type="text"],textarea').not('[readonly="readonly"]').addClass("idleField");
    $('input[type="text"],textarea').focus(function() {
        $(this).removeClass("idleField").addClass("focusField");
        if (this.value == this.defaultValue){
            this.value = '';
        }
        if(this.value != this.defaultValue){
            this.select();
        }
    });
    $('input[type="text"],textarea').blur(function() {
        $(this).removeClass("focusField").addClass("idleField");
        if ($.trim(this.value) == ''){
            this.value = (this.defaultValue ? this.defaultValue : '');
        }
    });
   });

Я ищу способ исключить те поля input, которые установлены readonly через readonly="readonly",Я знаю, что должен использовать .not (наверное), но не могу понять, как.

1 Ответ

8 голосов
/ 10 декабря 2010

Если вы хотите, чтобы все входные элементы были доступны для записи (не только для чтения), вы можете использовать следующий селектор:

$("input:not([readonly])")

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

[readonly="readonly"]

Как вы могли бы иметь оба из них:

<input readonly type="text">
<input readonly="readonly" type="text">

Вы также можете использовать псевдо-селектор ": input" вместо "input, textarea". Смотри документацию здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...