Стиль Дата ввода заполнителя для контактной формы 7 в 2018 году - PullRequest
0 голосов
/ 25 октября 2018

Довольно простой вопрос о том, как изменить местозаполнитель дд / мм / гггг для ввода даты и получить текст другого цвета после выбора даты.

Я попробовал следующий код, чтобы нетбезрезультатно:

input[type="date"] {
    color: pink;
}

::-webkit-datetime-edit-day-field[aria-valuetext=blank],
::-webkit-datetime-edit-month-field[aria-valuetext=blank],
::-webkit-datetime-edit-year-field[aria-valuetext=blank] {
  color: gren;
}

И

input[type="date"] {
    color: pink;
}

::-webkit-datetime-edit-day-field:not([aria-valuetext]),
::-webkit-datetime-edit-month-field:not([aria-valuetext]),
::-webkit-datetime-edit-year-field:not([aria-valuetext]) 
{
  color: green;
}

И

input[type="date"] {
    color: pink;
}

input[type="date"]:invalid::-webkit-datetime-edit-text,
input[type="date"]:invalid::-webkit-datetime-edit-day-field,
input[type="date"]:invalid::-webkit-datetime-edit-month-field,
input[type="date"]:invalid::-webkit-datetime-edit-year-field {
  color: green;
}

HTML

<span class="wpcf7-form-control-wrap date-457">
    <input type="date" name="date-457" value="" class="wpcf7-form-control wpcf7-date wpcf7-validates-as-date" aria-invalid="false">
</span>

Ни один из этих стилей не работает для изменения заполнителяи с выбранной датой другого цвета.Я полагаю, что эти решения устарели, так как я не могу найти здесь никаких ответов, касающихся 2017-2018.

Я полагаю, что актуальный ответ принесет пользу всем на сайте, ищущим ответ в текущий день и возраст, поэтомупожалуйста, не помечайте его как дубликат, ЕСЛИ БЕСПЛАТНЫЙ вопрос не содержит рабочий код.

Ответы [ 3 ]

0 голосов
/ 31 октября 2018

Вы хотите изменить цвет при выборе даты. Это правильно!Я так понимаю.Вы можете проверить на хром.

input[type="date"] {
    color: pink;
}
::-webkit-datetime-edit-month-field:focus,::-webkit-datetime-edit-day-field:focus,::-webkit-datetime-edit-year-field:focus {
    color:green;
    background:transparent;
}
<input type="date" name="date-457" value="" aria-invalid="false">
0 голосов
/ 02 ноября 2018

Есть способ сделать это, но для этого нужно добавить атрибут required в input.Затем вы можете использовать : действительный и : недействительный псевдо-селекторы для стиля ввода, когда его значение имеет или не имеет допустимого формата.Посмотрите на следующие примеры, в первом просто введите текст зеленый при выборе даты, в противном случае текст сохранит черный :

input[type="date"]:valid {
    color: green;
}
<span class="wpcf7-form-control-wrap date-457">
    <input type="date" name="date-457" value="" class="wpcf7-form-control wpcf7-date wpcf7-validates-as-date" aria-invalid="false" required>
</span>

Этот следующий аналогичен предыдущему, но добавляет текст красный , когда дата недействительна и мы наводим курсор на ввод.

input[type="date"]:valid {
    color: green;
}

input[type="date"]:invalid:hover {
    color: red;
}
<span class="wpcf7-form-control-wrap date-457">
    <input type="date" name="date-457" value="" class="wpcf7-form-control wpcf7-date wpcf7-validates-as-date" aria-invalid="false" required>
</span>

Последний вариант (не только CSS), использующий JQuery (и без обязательного атрибута), использует прослушиватель на input событие и проверка значения для манипулирования стилем ввода:

$("input[type='date']").on('input', function()
{
    $(this).css("color", "red");
    
    if ($(this).val())
        $(this).css("color", "green");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<span class="wpcf7-form-control-wrap date-457">
    <input type="date" name="date-457" value="" class="wpcf7-form-control wpcf7-date wpcf7-validates-as-date" aria-invalid="false">
</span>
0 голосов
/ 30 октября 2018

Из вашего вопроса я понимаю, что вы хотите изменить цвет даты после ее выбора.Я предлагаю использовать JQuery, однако я понимаю, что вы пометили только CSS.

Вы можете легко достичь того, что хотели, используя метод JQuery change().Я также добавил идентификатор для вашего поля даты, чтобы мы могли использовать getElementById для изменения CSS, когда дата установлена.

Кроме того, когда вы нажимаете кнопку отмены, цвет даты можно изменить на другой или вернуться к исходному.В этом примере я установил его на красный.

Идея состоит в том, что когда поле даты НЕ пусто, оно будет отображаться зеленым цветом.И когда дата пуста, она покажет другой цвет (в этом примере это красный, вы можете установить его обратно в исходный цвет. Я сделал это так, чтобы вы могли видеть зеленый, когда не пустой, и красный, когда пустой).

Поэтому, когда поле не пустое, это означает, что длина> 0. Используя эту идею, мы можем установить, что когда поле даты не пустое, мы меняем его на зеленый, а когда оно пустое, мы меняем его.на красный.

Попробуйте это:

$('#date').change(function()
{
      if( $(this).val().length > 0 ) {
        document.getElementById("date").style.color = "green"; 	
    } else {
    	document.getElementById("date").style.color = "red";
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="wpcf7-form-control-wrap date-457">
    <input type="date" name="date-457" value="" class="wpcf7-form-control wpcf7-date wpcf7-validates-as-date" aria-invalid="false" id="date">
</span>

ps: Если вам не нужен ответ в JQuery, дайте мне знать, и я удалю этот ответ.

...