Написал так: когда начинаешь печатать в input появляется span, но дело в том, что если потом стереть то, что написал, то этот span остаётся, а надо чтобы скрывался. Написал условие внутри функции, но что-то не срабатывает, span вообще не появляется.
$('label.form-group').keyup(function() {
$(this).children('span:first-child').show();
if ($('label.form-group input').value === '' || $('label.form-group input').value === this.defaultValue) {
$('label.form-group>span:first-child').hide();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="form-group">
<span>×</span>
<input class="form-control validate" id="email" type="text" required>
</label>
В jquery используется val()
вместо value
;
this.defaultValue
→ $(this).defaultValue
;
Ну и я бы все-таки вешал обработчик события на инпут, а не на лейбл, мало ли как там с разметкой потом будет.
$('.form-control').keyup(function() {
$(this).prev().show();
if ($(this).val() === '' || $(this).val() === $(this).defaultValue) {
$(this).prev().hide();
}
});
label.form-group span {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="form-group">
<span>×</span>
<input class="form-control validate" id="email" type="text" required>
</label>
$('label.form-group input').value
будет возвращать undefined
. В jQuery
для получения значения нужно использовать метод val
. Вам видимо нужно что-то подобное, если я правильно понял:
$('label.form-group').keyup(function () {
$(this).children('span:first-child').show();
if ($('label.form-group input').val().trim() === '' || $('label.form-group input').val().trim() === this.defaultValue) {
$('label.form-group>span:first-child').hide();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="form-group">
<span style="display:none">×</span>
<input class="form-control validate" id="email" type="text" required>
</label>
Для изучения:
Пример ответа , отслеживаю событие change javascript:
$("#email").on("change", function () {
var parent = $(this).parent()[0],
yourSpan = $(parent).find("span")[0];
if ($(this).val() == "") {
$(yourSpan).hide();
} else {
$(yourSpan).show();
}
})
И HTML:
<label class="form-group">
<span>×</span>
<input class="form-control validate" id="email" type="text" required>
</label>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как мне им дать понять что блок нужно мылить? Или никак? Только канвас?
Не могу понять почему не меняется свойство у ссылки, при нажатии, при этом класс добавляется
background-attachment : fixed каждый раз при прокрутке вызывает операцию перерисовки что вызывает очень сильные тормоза и лагиМне нужен аналог этого...
Краткое описание задачи При запуске клиента, есть поля для ввода логина и пароля и кнопка авторизацииПри нажатии на которую данные, должны...