javascript - 添加和删​​除类不适用于 foreach

标签 javascript jquery

如果用户按下提交后输入有值,我将尝试添加和删除类。我有一个名为“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/

相关文章:

javascript - 如何编写允许某些字符只重复一次的正则表达式?

javascript - 如何使 containsNode() 在 IE 中工作?

javascript - 用 panby 偏移谷歌地图中心

javascript - 如何将 Google 的/MBP FastButton 代码与主干事件一起使用

javascript - 包含 jQuery 会导致标准 JavaScript 停止运行?

jquery - 视差背景图像全尺寸(宽度)

javascript - 在 tampermonkey 中,变量 urlm 的行为有所不同

javascript - jqtransform 和折叠的 DIV

javascript - Highcharts - Solid Gauge - 不一致的样式和不正确的值

javascript - 如何在 ajax 调用服务器后立即启动 jquery 自动完成