我在这里有用于比较文本框值的验证。我有数量文本框和隐藏文本框,如果数量文本框低于隐藏文本框,则错误消息将显示在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;
}
}
});
<p>
<label for="">PR Quantity</label>
<input name="n_quantity[]" id="n_quantity" class="qty tb1 n_quantity" type="text" value="<?php echo $row['total_quantity'] ?>" />
<span class="val_qty val_over"></span>
</p>
<p style="display:none;">
<input id="pr_total" class="tb2 pr_total" type="text" value="<?php echo $row['total_quantity'];?>" readonly="readonly">
</p>
答案 0 :(得分:0)
您可以迭代可编辑字段,然后将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;
}
});