2013-02-08 2 views
0

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

Это пример того, что я пробовал:

CSS

input[type="text"]{ 
    display:block; 
} 
input.required[value=""] { 
    background-color:yellow; 
} 

HTML

Name:<input class="required" type="text" name="Name" value="" size="20"> 
Phone:<input type="text" name="Phone" value="" size="20"> 

Необходимое поле окрашивается просто отлично, проблема что цвет не исчезает, как только поле имеет значение.

Есть ли способ заставить его работать с чистым CSS?

+4

В новых браузерах: используйте ': invalid' psuedo-selector и атрибут' required'. В старых браузерах вам понадобится JavaScript. –

+1

@Matt Whipple: Вы должны опубликовать это как ответ. – BoltClock

+0

@MattWhipple Спасибо, он работает как очарование на Firefox 18! Хотя я использую структуру, где я могу легко назначить класс для поля, но добавив требуемый атрибут, это не так просто. Как вы думаете, есть ли другой способ без атрибута * required *? – pmoleri

ответ

2

С новыми браузерами: используйте psedo-селектор :invalid и атрибут required. В старых браузерах вам понадобится JavaScript.

Если ваш фреймворк мешает добавить атрибут HTML5, я бы поставил под вопрос структуру (или посмотрел на обновление версии), но вы всегда можете использовать прокладку, если необходимо, с чем-то рядом (предположим, что jQuery):

$(function() { 
    $(".required.").attr("required", "true"); 
}); 

Меньше, чем идеальный, но достаточно простой, чтобы он не загрязнял систему.

Смежные вопросы