JS过早验证条形码扫描仪数据

时间:2010-07-21 19:25:58

标签: javascript

我正在使用条形码扫描仪输入数据,然后将代码发送回服务器以针对数据库进行验证。输入第一个字符后,我遇到了javascript问题。我需要找到一种方法来延迟这个,这样就可以输入完整的19个字符。我想检查的条形码包含数字,空格和短划线。

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

<form name="getBarcode" method="GET">
Barcode: <input id = "barcodeEntry" type="text" name="barcode" onkeyup = "checkBarCode()" /><br />
</form>

和JS

var checkBarCode = function() {

    var barcode = $("#barcodeEntry").val();

    if (barcode.length == 19) {
        var url = "check/";
        var data = {barcode:barcode};
        var args = {type:"GET", url:url, data:data, complete: checked}; 
        $.ajax(args);

        return false;
    } else {
        alert("something went wrong here");

        return false;
    }
}

var checked = function(res, status) {
    if (status == "success") {
        alert("Valid");
        return false;
    } else {
        alert("Not Valid");
        return false;
    }
}

提前感谢您提供任何可能的帮助!

2 个答案:

答案 0 :(得分:1)

当代码长度不是19时,您不应该执行alert,因为它会阻止扫描程序进入输入中的字符。为什么在checkBarCode中返回false?

您使用的条形码扫描仪最后会插入enter个字符吗?

PS:我目前正在使用条形码和JS;)

答案 1 :(得分:1)

删除else语句,它应该可以工作。

var checkBarCode = function() {

    var barcode = $("#barcodeEntry").val();

    if (barcode.length == 19) {
        var url = "check/";
        var data = {barcode:barcode};
        var args = {type:"GET", url:url, data:data, complete: checked}; 
        $.ajax(args);
    } 
}

我觉得你不需要退货。