我正在使用条形码扫描仪输入数据,然后将代码发送回服务器以针对数据库进行验证。输入第一个字符后,我遇到了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;
}
}
提前感谢您提供任何可能的帮助!
答案 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);
}
}
我觉得你不需要退货。