1. 程式人生 > >掃碼槍掃描多個二維碼在明細行自動增行自動定位輸入框

掃碼槍掃描多個二維碼在明細行自動增行自動定位輸入框

掃碼槍掃描二維碼需要滿足這樣的需求:1、開啟表單,自動定位到 掃姓名那個,掃描之後帶出姓名等,2,之後自動定位到 明細表 編碼列,掃描一個之後,自動增行,滑鼠定位在第二行的編碼列


第一點可以在完畢後直接focus到輸入框既可;
第二點思路是在表單寫一個鍵盤的按鍵事件onkeydown,二維碼掃描後一般是預設執行enter鍵,首先判斷明細行第一行有沒有值,沒有值直接focus到第一行,如果第一行有值了,那麼執行新增一行的js,然後獲取最大的行號,然後focus到這個新增的行,需要注意由於bpm這個新增行之後不能直接獲取到新增的行,所以可寫一個延遲方法裡面執行foucus方法;

下面是對照思路的兩個js截圖:僅是對於bpm開發的程式碼寫法;

 

 

function Sub11()
        {
            //判斷是否enter鍵
            if(event.keyCode==13)
            {
                var code= $("#XTextBox5").find(".yz-xform-field-ele")[0].value;
                var i=$("#XTextBox13").find(".yz-xform-field-ele")[0].value;
                //明細行第一行是否有值
                if(code!=""){
                   var item0=$('[id=XTextBox9]').find(".yz-xform-field-ele")[0].value;
                   if(item0!=""){
                       //新增一行
                       $("input[name='XAddBlockButton1']").click();
                       //獲取行號
                       i=parseInt(i);
                       //延時把焦點挪到新增的行
                       setTimeout(function(){ $('[id=XTextBox9]').find(".yz-xform-field-ele")[i].focus(); }, 1);


                   }else{
                      $('[id=XTextBox9]').find(".yz-xform-field-ele")[0].focus();
                   }
                }
            }

         }