JQM (jQueryMobile) пользовательский css для недопустимого выбора

#jquery #css #validation #html #jquery-mobile

#jquery #css #проверка #HTML #jquery-mobile

Вопрос:

Мой пользовательский CSS для проверки заключается в том, чтобы обвести элемент красной рамкой. Работает для входных данных, но не для Select, Radio и флажков, поскольку jQM добавляет собственную разметку для этих тегов.

Итак, у меня есть это для CSS, и оно отлично работает для тега ввода, только без выбора, радио и флажков

 /* html5 */
input[type='text'],
input[type='number'],
input[type='email'],
textarea, select { 
    border: solid 1px #999;
}
input[type='text'].focus,
input[type='number'].focus,
input[type='email'].focus,
textarea.focus, select.focus { 
    border-color: #000 !important; 
}
input[type='text'].invalid,
input[type='number'].invalid,
input[type='email'].invalid,
textarea.invalid, select.invalid { 
    border-color: red;
}
input[type='text'].inactive,
input[type='number'].inactive,
input[type='email'].inactive,
textarea.inactive, select.inactive, option.inactive { 
    color: #999;
    font-style: italic;
}
input[type='text'].required,
input[type='number'].required,
input[type='email'].required, 
textarea.required { 
    background: url(../images/asterisk_red.png) right 5px no-repeat;
}
  

Ответ №1:

В jQuery Mobile элементы Select, Radio и Checkbox полностью заменены другими элементами в DOM (на самом деле, им присвоено значение hidden, а элементы DOM размещены поверх них, но эффект тот же ..). Таким образом, чтобы применить стили к этим элементам, вам нужно применить стили к другому селектору, чем вы ожидали. Для чего-то вроде переключателей вам пришлось бы применить стили к .ui-radio .ui-btn

Лучший способ выяснить, какие стили вам нужны, — это проверить отдельные элементы с помощью чего-то вроде firebug или инструментов разработчика браузера, поскольку используемые классы могут немного отличаться в зависимости от того, как вы настраиваете элементы формы.