慢客户端上的JavaScript验证

时间:2015-10-26 16:55:57

标签: javascript arrays client-side-validation

我认为这是客户端或网络问题,无论哪种方式,这都是问题。

我正在使用文本输入(#id_barcode)来捕获条形码扫描程序中的代码,因为扫描程序会自动添加[Enter]我使用以下代码:

<script type="text/javascript">
    var scannedCodes = []; // No duplicates allowed!
    var re_code = /^B([A-Z]{2}\d{2})(\d{11})$/;
    re_code.compile(re_code);
    $(document).ready(function() {
        $("#id_barcode").keypress(function(e) {
            if(e.which == 13) {
                processCode();
            }
        });
    });

    function processCode() {
        var text = $("#id_barcode").val().toUpperCase();
        $("#id_barcode").val(""); // Reset input
        if (text.match(re_code)) {
            var code = text.match(re_code)[0];
            if (scannedCodes.indexOf(code) != -1) {
                showError("Duplicated code: " + code);
            } else {
                scannedCodes.push(code);
                // More code here including an AJAX call for extra validation 
            }
        }
    }
</script>

因此,如果代码已经在数组中,则会显示错误消息,但在某些情况下不会发生这种情况。我运行了一个简单的测试,其中我粘贴了一个随机代码,然后按回车并快速重复模拟条形码扫描仪,这就是发生的事情:

enter image description here

它没有验证:

console.log(scannedCodes);
["BSG2410100141820", "BSG2410100141820", "BSG2410100141820"]

如果我等待另一秒并输入相同的代码,它会验证。我怎么能克服这个?

0 个答案:

没有答案
相关问题