我的问题是我有两个表,每个表都有一个单元格,内容是一个输入字段,它们需要在不同的表中匹配相同的精确值。 当值不匹配时,我需要突出显示不匹配的位置。
用户只有在点击按钮提交时才会收到此信息,如果值不匹配则需要突出显示,并且只有在值匹配时才能转到下一页。
我无法突出显示,我需要改进此代码。
这是我到目前为止所做的:
$(".buttonThatUserClick").on('click', function() {
var bdn = $('input[name*=returnitemqty]'); /* table A */
var lgl = $('input[name*=replacementitemqty]'); /* table B */
var arr = [];
var brr = [];
$(bdn).each(function() {
arr.push($(this).val());
});
$(lgl).each(function() {
brr.push($(this).val());
});
var is_same = arr.length === brr.length && arr.every(function(element, index) {
return element === brr[index]
});
if(is_same === false) {
console.log('false')
} else {
console.log('woop')
}
})
答案 0 :(得分:1)
修改强>
最后......由于.every()
暂停,因此发现第一个false
...
必须在单独的循环中进行高亮显示...并保持原样的其他比较。
// Cell check and color hightlight
for(i=0;i<arr.length;i++){
if(arr[i]!=brr[i]){
lgl.eq(i).css({"background-color":"#FF0000"}); // Red on error
bdn.eq(i).css({"background-color":"#FF0000"});
}
}
(请参阅编辑历史记录以查看先前的尝试)
答案 1 :(得分:1)
以下是您的问题的解决方案:
$(".productable_txt").click(function(){
$('input[name*=returnitemqty]').each(function(){
en = $(this).attr('name').replace('returnitemqty','');
$(this).css({"background-color":"#FFFFFF"});
if($(this).val()==$('input[name=replacementitemqty'+en+']').val()){
console.log('Matched!');
}else{
//alert('Something wrong');
$(this).css({"background-color":"#FF0000"});
//return false;
}
});
})