Выберите все входные теги, для которых тип не установлен - PullRequest
8 голосов
/ 31 марта 2012

Мне нужен селектор CSS, который соответствует всем тегам ввода, где тип не checkbox.

Этот матч:

<input value="Meow!" />

<input type="password" />

... но это не :

<input type="checkbox" />

Потому что тип checkbox!

Вот что у меня сейчас:

input:not(type="checkbox")

К сожалению, он не работает!

Итак, вот мои вопросы:

  1. Как исправить мой селектор CSS3?
  2. Возможно ли это без CSS3 и JavaScript?
  3. Возможно ли это без CSS3, но с использованием JavaScript?

Спасибо за любой совет!

Ответы [ 2 ]

23 голосов
/ 31 марта 2012
  1. В селекторе атрибутов отсутствуют квадратные скобки:

    input:not([type="checkbox"])
    
  2. Если вы применяете стили, вам нужно использовать правило переопределения в CSS:

    input {
        /* Styles for all inputs */
    }
    
    input[type="checkbox"] {
        /* Override and revert above styles for checkbox inputs */
    }
    

    Как вы можете себе представить, это почти невозможно сделать для элементов формы, потому что их стили браузера по умолчанию не определены в CSS.

  3. jQuery предоставляет :checkbox селектор , который вы можете использовать:

    $('input:not(:checkbox)')
    

    Вы также можете использовать тот же селектор, что и в CSS:

    $('input:not([type="checkbox"])')
    
1 голос
/ 31 марта 2012

input:not([type="checkbox"])

...