如果用户按下提交后输入有值,我将尝试添加和删除类。我有一个名为“qty”的类,它是一个动态字段(用户可以添加或删除多个 qty 输入)。
输入的 html 是:
<input placeholder='Insert Quantity' value='' name='saved_item[1][qty]' class='qty' type='text'/>
但我也尝试更改一个将用文本显示错误的 div:
<span id="qty-error" class="hide-error">• Please make sure to fill out all item information or delete the item row</span>
尽管它显示了“inputerror”类(将边框变成红色),但它并没有显示。
我的jquery是:
$('#submit').click(function(e){
$(".qty").each(function(){
if ($(this).val() == "" && $(this).is(':enabled')){
$(this).addClass("inputerror");
$("#qty-error").removeClass("hide-error");
$("#qty-error").addClass("show-error");
e.preventDefault();
} else {
$(this).removeClass("inputerror");
$("#qty-error").removeClass("show-error");
$("#qty-error").addClass("hide-error");
}
});
});
有什么想法吗?
最佳答案
由于您要更改 each .qty
的 #qty-error
类,因此 #qty-错误
将由最后.qty
项目的状态决定。
您可以更改它以将类应用到#qty-error
:
$(".qty").each(function(){
if ($(this).val() == "" && $(this).is(':enabled')){
$(this).addClass("inputerror");
e.preventDefault();
} else {
$(this).removeClass("inputerror");
}
});
if ($(".qty.inputerror").length > 0) {
$("#qty-error").removeClass("hide-error");
$("#qty-error").addClass("show-error");
}
else {
$("#qty-error").removeClass("show-error");
$("#qty-error").addClass("hide-error");
}
关于javascript - 添加和删除类不适用于 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29173243/