我正在处理一个小项目,经过长时间的文档没有结果后,我决定寻求帮助。 我正在研究的是php和jquery中基于分配条形码的系统。 您将在代码中看到的分配过程包括四次扫描,第一次扫描以打开分配会话,第二次扫描订单,第三次扫描位置货架,第四次通过重新扫描订单获取确认窗口(步骤bug是)。 在打开确认窗口之前,最后一次扫描应该模糊表单的所有输入字段。这种方法有一段时间了,但随后代码开始将焦点放在最后选择的输入字段上,由此弄乱数字。
这是扫描仪检测功能,具有作为回调功能的四个步骤来跟踪扫描扫描。(它包含在document.ready功能中,我只是没有复制整个代码)
$(document).scannerDetection({
timeBeforeScanTest: 200, // wait for the next character for upto 200ms
startChar: [120], // Prefix character for the cabled scanner (OPL6845R)
endChar: [13], // be sure the scan is complete if key 13 (enter) is
detected
avgTimeByChar: 40, // it's not a barcode if a character takes longer than
40ms
onComplete: function(barcode, qty){
// main callback function
console.log(barcode);
order=barcode;
if($("*:contains('ADD YOUR ORDER')").length>0){
count++;
if(count==1){
console.log('First step');
$("#allocation #ordNum").focus();
var lineOrd=$("#allocation #ordNum").closest("tr");
$(lineOrd).addClass("focus");
}
if(count==2){
console.log('Second Step');
if($("#allocation #ordNum").val()) {
var matchItem=/^\d+$/;
ord=$("#allocation #ordNum").val();
if(matchItem.test(ord)===false){
alert("Give a valid order number!");
window.location.href=window.location.href;
}
$(".focus").removeClass("focus");
$.post("ajax.inc.php",
{action:"scanN",order:ord}).done(function(data){
dataa=$(data).text();
if(dataa.indexOf("1.)")>=0){
document.getElementById("soundEffect").play();
alerting=true;
alert(dataa);
}
});
console.log("there is something: "+ord);
$("#allocation #location").focus();
var lineLoc=$("#allocation #location").closest("tr");
$(lineLoc).addClass("focus");
}else{
alert('Give a valid ordernumber.');
count--;
}
}
if(count==3){
console.log('Third step');
if($("#allocation #location").val()){
loc=$("#allocation #location").val();
$(":text").blur(); //the line what stops working
console.log('location has value');
$("#allocation #update").focus();
//var matchItem2=/^\s?[A-B]\s?[1-6]\s?[A-E]\s?[1-6]\s?$/;
var matchItem2=/^\s?[A-B]\s?[1-6]\s?[A-E]\s?[1-6]\s*$/;
if(matchItem2.test(loc)===false){
alert("Give a valid location!");
window.location.href=window.location.href;
}
}
}
if(count==4){
console.log('Forth step');
$(".focus").removeClass("focus");
if(barcode===ord){
var confi=confirm('Order '+ord+' added to location '+loc);
if(confi==true){
$.post("ajax.inc.php",
{action:"scan",order:ord,location:loc,thestat:thestat})
.done(function(data){
console.log('Order added');
$(".container").append(data);
setTimeout(function(){
window.location.href=window.location.href;
},500);
//window.location.href=window.location.href;
console.log('confirmed');
});
}
if(confi==false){
window.location.href=window.location.href;
console.log('not confirmed');
}
}else{
alert('Allocation is confirmed by rescan of the order');
count--;
}
}
}
if($("h2.scan:contains('SCAN TO SEARCH ORDER')").length>0){
$(".container #locations").remove();
$(".container h4#process").remove();
console.log('Scanning Picknote');
$.post("ajax.inc.php{action:"scanN",order:order}).done(function(data)
{
$(".container").append(data);
});
}
if($("h2.scan:contains('SCAN TO PROCESS ORDER')").length>0){
console.log('Delete order');
console.log('order:'+order);
$.post("ajax.inc.php,
{action:"delete",order:order}).done(function(data){
$(".container #processed").append(data);
$(".container #locations .forProcess
span#"+order).slideUp();
});
}
}
});
任何帮助都可能有所帮助。我想要实现的是,一旦扫描位于数字3,就可以从窗体上的每个输入字段中聚焦。即使实现了它,由于某种原因,它在一定时间后停止了而。 谢谢。
答案 0 :(得分:0)
请检查此行:
$.post("ajax.inc.php{action:"scanN",order:order})
我认为它应该是:
$.post("ajax.inc.php",{action:"scanN",order:order})