2012-05-10 76 views
1

我正在使用移動Safari瀏覽器專門爲iPad客戶端提供的Web應用程序。我的表單有兩個輸入字段,這兩個字段都將填充來自配對的藍牙條形碼掃描器的數據。Mobile Safari - 樂趣與焦點()

當第一場被掃描,JavaScript的手錶返回按鍵;下面,解析收到的字符串,然後將焦點設置一個數量字段...

function tabtoquantity(e) { 
    keyEntry = event.keyCode; 
    if(keyEntry == '13') { 
     var barcode = document.test.barcodefield.value; 
     var labeltext = barcode.split("*"); 
     document.test.itemkey.value = labeltext[0]; 
     document.test.description.value = labeltext[1]; 
     document.test.lotno.value = labeltext[2]; 
     document.test.datercvd.value = labeltext[3]; 
     document.test.binno.value = labeltext[4]; 
     document.test.unitwgt.value = labeltext[5]; 
     document.test.slot.value = labeltext[6]; 
     document.test.allergens.value = labeltext[7]; 
     document.test.kosher.value = labeltext[8]; 

     //document.test.barcodefield.disabled="true"; 
     //document.test.barcodefield.style.display="none"; 

     document.test.scanqty.focus(); 
    } 
    else if((keyEntry < '48') || (keyEntry > '57')) { 
     return false;    
    } 
} 

這一切的偉大工程,除了它不會將焦點設置到我的scanqty字段。

奇怪的是,我有一個的onClick調用下面的函數scanqty字段旁邊的按鈕:

function qtyreset() { 
    document.test.scanqty.value = ''; 
    document.test.scanqty.focus(); 
} 

我不知所措,爲什麼在一種情況下相同的命令作品,而不是在其他。該功能在常規Safari中按預期工作。

也許它是相關的(?),但移動Safari的形式助手(上一頁和下一頁按鈕)出現在我加載頁面但在我將數據掃描到第一個字段後消失...我希望它將焦點設置爲scanqty字段,但似乎無處設置焦點。

我很欣賞任何輸入/幫助。

+0

你爲什麼使用回車鍵?傳統上它會提交表單。在桌面瀏覽器中,選項卡將移動到下一個字段,在移動Safari中,「下一步」按鈕也會執行相同操作。然後使用tabIndex將焦點置於* scanqty *字段和* barcodefield.onblur *來調用偵聽器。 – RobG

+0

更確切地說,回車鍵是條形碼掃描器附加到掃描數據的字符。我想我可以編程它來追加一個製表符,而不是看一個特定的按鍵來解析數據字符串onblur。謝謝,我會試試看。 – KCBill

+0

Bill,如果您有對掃描儀輸出的控制權,您可能希望它將所有內容轉儲到一個輸入框中並解析/重新分配數據。我非常懷疑有關鍵盤輸入元件焦點的任何保證,並且涉及動態焦點切換的任何解決方案都將變得脆弱。 – nmr

回答

0

如果您已將網站添加到主屏幕並使用此鏈接打開網站,focus()似乎只能起作用。