根据不同表上的值突出显示表格单元格

时间:2018-01-04 16:07:05

标签: jquery

我的问题是我有两个表,每个表都有一个单元格,内容是一个输入字段,它们需要在不同的表中匹配相同的精确值。 当值不匹配时,我需要突出显示不匹配的位置。

用户只有在点击按钮提交时才会收到此信息,如果值不匹配则需要突出显示,并且只有在值匹配时才能转到下一页。

我无法突出显示,我需要改进此代码。

这是我到目前为止所做的:

$(".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')
    }

})

2 个答案:

答案 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"});
  }
}

(请参阅编辑历史记录以查看先前的尝试)

Your CodePen updated

答案 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;
      }
    });
  })