如果输入密钥没有重复,请添加新行

时间:2017-06-19 08:04:16

标签: jquery html

我有一张桌子,我可以通过bardcode扫描仪插入数据。目标是忽略表中已存在的数据,否则继续添加行。

我的JS功能:

$(document).on('keypress', '#receiving-box-table tr:last-child td:first-child input[name^="retrieve_courier_tracking_no[]"]', function(e){
    var retrieve_checker = true;
    get_last_id();
    if (e.keyCode == 13) {
        var seen = {};
        $('#receiving-box-table input[name^="retrieve_courier_tracking_no[]"]').each(function() {
            var txt = $(this).val();
            alert(txt);
            if (seen[txt]){
                $(this).val('');

                retrieve_checker = false;
                return false;
            } else{
                seen[txt] = true;
                retrieve_checker = true;
                return true;
            }
        });
        if(retrieve_checker == true){
            $('#receiving-box-table tbody').append(new_row);
            $(this).closest('tr').next().find('input.track_no').focus();
            var new_val = parseInt($('#retrieve_box_qty').val()) + 1;
            $('#retrieve_box_qty').val(new_val);
            $('#'+another_lel).val(new_val);
        }
    }
});

我的问题是:

  1. 什么都没发生。只有第一个输入键按下
  2. 但如果我稍微改变我的代码:

    $(document).on('keypress', '#receiving-box-table tr:last-child td:first-child input[name^="retrieve_courier_tracking_no[]"]', function(e){
        var retrieve_checker = true;
        get_last_id();
        if (e.keyCode == 13) {
            var seen = {};
            $('#receiving-box-table input[name^="retrieve_courier_tracking_no[]"]').each(function() {
                var txt = $(this).val();
                if (seen[txt]){
                    $(this).val('');
    
                    retrieve_checker = false;
                    return false;
                } else{
                    seen[txt] = true;
                    retrieve_checker = true;
                    return true;
                }
            });
            //if(retrieve_checker == true){
                $('#receiving-box-table tbody').append(new_row);
                $(this).closest('tr').next().find('input.track_no').focus();
                var new_val = parseInt($('#retrieve_box_qty').val()) + 1;
                $('#retrieve_box_qty').val(new_val);
                $('#'+another_lel).val(new_val);
            //}
        }
    });
    

    我的问题是:

    1. 按Enter键添加行,但仍会添加重复数据。
    2. 即使我刚刚输入的数据不是,也表示重复。
    3. 我认为我的每个功能都有问题,但我不确定是什么。

      更新信息

      我有与它相同的功能和工作。但我无法使用它,因为触发我的新函数的按钮最初没有加载,因此我使用$(document).on...

      我已经被困了几个小时,所以任何帮助都非常感谢。

0 个答案:

没有答案