Javascript 每个文本框的验证错误消息

Javascript 每个文本框的验证错误消息,javascript,jquery,Javascript,Jquery,我这里有一个比较文本框值的验证。我有quantity textbox和hidden textbox,如果quantity textbox低于hidden textbox,则会在span中显示错误消息。但问题是,即使在具有正确值的其他跨度中,错误消息也总是出现 如下图所示,如果数量小于隐藏的文本框错误消息显示,但在另一个文本框上,具有正确值的错误消息仍然显示。帮忙 $('.n_quantity,.pr_total').each(function () { var textBox1 = $(

我这里有一个比较文本框值的验证。我有quantity textbox和hidden textbox,如果quantity textbox低于hidden textbox,则会在span中显示错误消息。但问题是,即使在具有正确值的其他跨度中,错误消息也总是出现

如下图所示,如果数量小于隐藏的文本框错误消息显示,但在另一个文本框上,具有正确值的错误消息仍然显示。帮忙

$('.n_quantity,.pr_total').each(function () {
    var textBox1 = $(".n_quantity");
    var textBox2 = $(".pr_total");
    for (var i = 0, len = textBox1.length; i < len; i++) {
        if (parseInt(textBox2[i].value) > parseInt(textBox1[i].value)) {
            $(this).next("span.val_over").html("Over").addClass('validate');
            validation_holder = 1;
            return false;
        }
    }
});

$('.n_数量,.pr_总数')。每个(函数(){
var textBox1=$(“.n_数量”);
var textBox2=$(“.pr_总计”);
对于(变量i=0,len=textBox1.length;iparseInt(textBox1[i].value)){
$(this).next(“span.val_over”).html(“over”).addClass(“validate”);
验证_持有人=1;
返回false;
}
}
});


PR数量

您可以迭代可编辑字段,然后遍历dom到相关元素:

$('.n_quantity').each(function () {
    var $this = $(this);
    var $total = $this.closest('p').next().find('.pr_total');

    if (parseInt($this.val(), 10) > parseInt($total.val(), 10)) {
        $this.siblings('.val_over').html('Over').addClass('validate');
        validation_holder = 1;
    }    
});

为什么要使用
.each()
,然后再次拉出相同的列表,并使用
for
循环进行迭代?您的迭代次数太多了,需要选择与验证失败的输入相关的
.val\u over
元素。但我们需要查看html才能给出完整的答案。解决方法之一是迭代包含对的容器,然后在函数内部提取对中的每个项进行比较。jQuery有足够强大的选择器来执行此操作,但是
$(selector1,selector2)
不是吗。@paul我用于循环多条编辑记录。我应该怎么做?请看,
$.find()
——如果每个输入/隐藏对都在一个div中,您可以使用
.each
迭代这些div,然后在迭代函数中使用
$.find()
查找输入和隐藏元素。我想问一下为什么有10个?这是基数。指定10意味着您希望将其解析为基数10或十进制。以下是更多信息:
$('.n_quantity').each(function () {
    var $this = $(this);
    var $total = $this.closest('p').next().find('.pr_total');

    if (parseInt($this.val(), 10) > parseInt($total.val(), 10)) {
        $this.siblings('.val_over').html('Over').addClass('validate');
        validation_holder = 1;
    }    
});