3 回答
TA贡献1827条经验 获得超8个赞
这是使用 jQuery 的解决方案:
function checkForInputFooter(element) {
// element is passed to the function ^
const $label = $(element).siblings('.raven-field-label');
var $element = $(element);
if ($element.val().length > 0) {
$label.addClass('input-has-value');
$element.closest('form').addClass('input-has-value');
} else {
$label.removeClass('input-has-value');
$element.closest('form').removeClass('input-has-value');
}
}
// The lines below are executed on page load
$('input.raven-field').each(function() {
checkForInputFooter(this);
});
// The lines below (inside) are executed on change & keyup
$('input.raven-field').on('change keyup', function() {
checkForInputFooter(this);
});
我在这里更新了你的笔。
TA贡献1815条经验 获得超13个赞
您可以收听输入元素的“输入”事件并用于.closest(<selector>)添加或删除类
$('input').on('input', function () {
if (!this.value) {
$(this).closest('form').removeClass('has-value');
} else {
$(this).closest('form').addClass('has-value');
}
})
编辑:https ://codepen.io/KlumperN/pen/xxVxdzy
TA贡献1804条经验 获得超7个赞
在这里,使用 javascript vanilla。我选择了标签标签和表单标签,并根据元素值添加/删除了类,但首先您应该将 id="myForm" 添加到您的表单 html 标签中。祝你好运。
function checkForInputFooter(element) {
// element is passed to the function ^
let label = element.parentNode.querySelector('.raven-field-label');
let myForm = document.getElementById("myform");
let inputValue = element.value;
if(inputValue != "" && inputValue != null){
label.classList.add('input-has-value');
myForm.classList.add('input-has-value');
}
else{
label.classList.remove('input-has-value');
myForm.classList.remove('input-has-value');
}
}
添加回答
举报