Barkod tarayıcıları ile ilgili olan şey genellikle standart bir HID klavye gibi görünmeleridir. Bu nedenle, taranan her yeni kod bir öncekinden sonra 'yazılmıştır'. Geçmişte kullandığım bir çözüm, o metin kutusundaki tuş basışları arasında ne kadar zaman geçtiğini görmektir. Eğer 10 milisaniyeden fazlasa (veya bu değerin etrafındaysa, bunun, kullandığım tarayıcı için 'kod' yazmak için kullandığım en büyük zaman olduğuna inanıyorum), o zaman bu yeni bir barkoddur ve ondan önce her şeyi silmeniz gerekir. .
sınıf/yöntem adları en kapalı yol muhtemelen bu yüzden, ele bir IDE yok, ama bir örnek gibi bir şey:
DateTime lastKeyPress = DateTime.Now;
void txtBarcode_KeyPress(object sender, KeyPressEventArgs args)
{
if(((TimeSpan) (DateTime.Now - lastKeyPress)).TotalMilliseconds > 10)
{
txtBarcode.Text = "";
}
lastKeyPress = DateTime.Now;
}
Bunu yapmak gerektiğini düşünüyorum. KeyPress olayı karakter eklenmeden önce çalışır, bu nedenle ilk önce metin kutusunu temizleyebilirsiniz.
Düzenleme: kurmak için, sana txtBarcode.TextChanged += txtBarcode_TextChanged
bulunan her yerden, bunun yerine bir txtBarcode.KeyPress += txtBarcode_KeyPress
sahip olduğunu tahmin ediyorum. Etkinlik adını doğru olsa kontrol edin.
Düzenleme 2:
jQuery Versiyon:
ASP kullanıyorken bu HTML (varsayarsak, giriş etiketi için kaynak farklı görünecektir, ancak çıkış hala sahip olacaktır O zaman bu
<form action="" method="post">
<input type="text" name="txtBarcode" id="txtBarcode" />
</form>
çalışır javascript: gerçekten önemli olan tek) 'dir id
niteliği,
$(document).ready(function() {
var timestamp = new Date().getTime();
$("#txtBarcode").keypress(function(event)
{
var currentTimestamp = new Date().getTime();
if(currentTimestamp - timestamp > 50)
{
$(this).val("");
}
timestamp = currentTimestamp;
});
});
50 milisaniye (en azından bir web tarayıcısında) karakterler arasında izin vermek gerekli zaman gibi görünüyor. Bunu Firefox, Chrome ve IE7'de test ettim.
Bu tam olarak geçerli bir sorudur, belki de ingilizce mükemmel değildir, ancak istediği açıktır. – Kazar