2015-09-12 73 views
0

我有一個HTML頁面,並希望禁用鍵盤輸入,只有條形碼掃描儀條目應該允許。 在此先感謝保持條形碼掃描器,但禁用HTML文本框中的鍵盤

+1

你能更具體地說明你已經做了什麼來解決這個問題嗎?什麼不工作?你有什麼錯誤嗎? – zstewart

+0

請將你編輯出來的代碼添加回去,沒有人知道你已經嘗試了什麼。 –

+0

只是讓它只讀,用戶不能編輯它,但你可以通過掃描儀 – ddw147

回答

0

您的代碼有誤,e.which/e.keyCode始終返回數字。

您需要檢查這些數字的範圍或檢查輸入的新值。

var tb=document.getElementById('textbox1'); 
tb.onkeypress = function(e) { 
     e = e || window.event; 
     var charCode = (typeof e.which == "number") ? e.which : e.keyCode; 
     if (charCode < 48 || charCode > 57) { 
      return false; 
     } 
    }; 

更簡單的方法將使用:

<input type="number" id="textbox2"> 

這裏要說的是這兩種方法工作的小提琴: http://jsfiddle.net/vgx4unc7/

看看這個jQuery函數:

$(document).ready(function() { 
    var pressed = false; 
    var chars = []; 
    $(window).keypress(function(e) { 
     if (e.which >= 48 && e.which <= 57) { 
      chars.push(String.fromCharCode(e.which)); 
     } 
     console.log(e.which + ":" + chars.join("|")); 
     if (pressed == false) { 
      setTimeout(function(){ 
       if (chars.length >= 10) { 
        var barcode = chars.join(""); 
        console.log("Barcode Scanned: " + barcode); 
        // assign value to some input (or do whatever you want) 
        $("#barcode").val(barcode); 
       } 
       chars = []; 
       pressed = false; 
      },500); 
     } 
     pressed = true; 
    }); 
}); 
$("#barcode").keypress(function(e){ 
    if (e.which === 13) { 
     console.log("Prevent form submit."); 
     e.preventDefault(); 
    } 
}); 
+0

更改值,抱歉在這裏丟失錯誤的代碼,你的代碼只允許數值,這也可以通過來實現,但我想限制鍵盤輸入,只想使用條形碼掃描器而不是鍵盤輸入網頁。 –

+0

您需要檢查使用條形碼時正在調用哪些事件。 – Saar

+0

我想通過網頁文本框從條形碼中獲取數字後提交表單 –