Другой подход - использовать CSS-селекторы и немного JS.Прежде всего, вам нужно обернуть текст, чтобы повлиять на цвет, как говорили другие пользователи здесь ...
<form action="" method="post" accept-charset="utf-8" class="form-signin form-register" role="form" id="register" autocomplete="off">
<input type="checkbox" id="age_confirmation" name="age_confirmation" required tabindex="10"/>
<label for="age_confirmation">Age Confirmation</label>
<input type="checkbox" id="terms_of_service" name="terms_of_service" required tabindex="11"/>
<label for="terms_of_service">Terms of Service</label>
<input type="submit" class="btn btn-tiffany" value="register" />
</form>
Затем вы можете выбрать все label
рядом сinvalid input
с использованием чистого CSS:
:invalid + label {
color: red;
}
Но при этом метки будут выбраны до того, как вы нажмете кнопку отправки.Итак, мы будем использовать javascript для добавления класса для определения состояния submitting
...
$('input[type=submit]').click(function() {
$('#register').addClass('submitting');
});
И затем мы можем сопоставить это с помощью CSS ...
.submitting :invalid + label {
color: red;
}
Вы найдете рабочий пример здесь: https://jsfiddle.net/yL7je0ap/
Преимущества этого решения
- Сохраняет четкое разделение между CSS и JS
- Использует встроенныйФункция проверки HTML5
- Не нужно прослушивать каждое изменение