テキストボックスはバーコードスキャナーからの入力のみを受け入れ、キーボードからの他の入力を制限するなどの機能があります。
質問する
5421 次
2 に答える
1
以下は、キーボードからの入力を制限するためのものです..バーコードスキャナーを接続して、動作するかどうかを確認してください..
textBox.onkeypress = function(e) {
e = e || window.event;
var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
if (/\D/.test(String.fromCharCode(charCode))) {
return false;
}
};
英数字の場合
これをチェック
于 2013-08-09T06:24:00.167 に答える
0
http://www.deadosaurus.com/detect-a-usb-barcode-scanner-with-javascriptでこれをチェックしてください
リンクから、テキストが 10 文字の長さの基準を満たしていない場合にテキストを自動クリアするように変更しました。これは、10 文字の長さの基準を満たしていない = バーコード スキャナーから入力されていないと見なすことができます。
私は ASP.NET を使用しています。以下は私のサンプルです。
ASP コードの場合:
<asp:TextBox ID="TextBoxComponentPartNumber" runat="server" onkeypress="AutoClearOrSetInputText(event,this.id);" ></asp:TextBox>
<asp:TextBox ID="TextBoxAssemblyPartNumber" runat="server" onkeypress="AutoClearOrSetInputText(event,this.id);" ></asp:TextBox>
JavaScript の場合:
<script type="text/javascript">
//This variables is for AutoClearOrSetInputText function
var pressed = false;
var chars = [];
//This function will auto clear or set input text box’s text value
function AutoClearOrSetInputText(eventForTextBox,idForTextBox) {
// add each entered char to the chars array
chars.push(String.fromCharCode(eventForTextBox.which));
// variable to ensure we wait to check the input we are receiving
if (pressed == false) {
// we set a timeout function that expires after 0.5 sec, once it does it clears out a list
// of characters
setTimeout(function() {
// check we have a long length e.g. it is a barcode
if (chars.length >= 10) {
// join the chars array to make a string of the barcode scanned
var barcode = chars.join(“”);
// assign value to input for barcode scanner scanned value
document.getElementById(idForTextBox).value = barcode;
}
else {
// clear value from input for non-barcode scanner scanned value
document.getElementById(idForTextBox).value = ”;
}
chars = [];
pressed = false;
}, 500);
}
// set press to true so we do not reenter the timeout function above
pressed = true;
}
</script>
于 2016-11-08T07:59:09.667 に答える