Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] || [CSS] Odczyt kodu kreskowego
Forum PHP.pl > Forum > Po stronie przeglądarki
Smertius
Posiadam czytnik kodów kreskowych który działa jak klawiatura, wszystko działa dobrze jeśli zaznaczymy pole formularza i zeskanujemy kod, treść kodu jest wklejana do formularza. Problem polega na ty że ta czynność musi być maksymalnie idioto odporna, także zaznaczanie za każdym pola nie wchodzi w grę. Najlepiej jeśli na ekranie byłby widoczny tylko napis w stylu "Proszę zeskanować kod..." , jednak nie mam pomysłu jak się do tego zabrać.

Półśrodek jaki znalazłem to zaznaczenie pola input podczas wczytywania strony.
  1. <body onload="document.getElementById('pole').focus();">

Jednak, jeśli użytkownik kliknie przez przypadek gdziekolwiek w przeglądarce pole przestaje być aktywne i aby poprawnie sczytać kod musi je ponownie zaznaczyć.

Byłbym wdzięczny za wszystkie sugestie
vokiel
  1. <script type="text/javascript">
  2. function focusField(id){
  3. document.getElementById(id).focus();
  4. }
  5. <body onload="focusField('pole');">
  6. <input type="text" id="pole" onblur="focusField('pole');" />


Tylko czy ciągły focus na polu pozwoli Ci operować dalej na stronie? Czy strona ma za zadanie tylko przyjmować kody?
kamil4u
Albo tak:
Kod
<input type="input" id="test" style="border: 2px solid red; width: 300px;" value="Aby zeskanować kod pole musi być aktywne">
<script>
document.getElementById('test').onfocus = function(){
  if(this.value == 'Aby zeskanować kod pole musi być aktywne'){
   this.style.borderColor = 'green';
   this.value = '';
  }
}
document.getElementById('test').onblur = function(){
  if(this.value == ''){
   this.style.borderColor = 'red';
   this.value = 'Aby zeskanować kod pole musi być aktywne';
  }
}
</script>

albo co nie jest najlepszym rozwiązaniem(w końcu ludzie nie są aż takimi debilami):
Kod
<input type="input" id="test" >
<script>
window.onclick = function(){ document.getElementById('test').focus(); }
window.onclick();
</script>
Smertius
Cytat
Tylko czy ciągły focus na polu pozwoli Ci operować dalej na stronie? Czy strona ma za zadanie tylko przyjmować kody?

Tak strona ma tylko przyjąć kod

Cytat
(w końcu ludzie nie są aż takimi debilami):

winksmiley.jpg

@Kamil4U najbardziej skłaniałbym się do twojego pierwszego rozwiązania, jednak jeśli pole input jest widoczne dla użytkownika to jak rozpoznać czy wartość jest wpisana "z palca" czy sczytana z kodu?
kamil4u
Cytat
@Kamil4U najbardziej skłaniałbym się do twojego pierwszego rozwiązania, jednak jeśli pole input jest widoczne dla użytkownika to jak rozpoznać czy wartość jest wpisana "z palca" czy sczytana z kodu?
Pisałeś, że ten skaner działa jak klawiatura, jeżeli jest dokładnie tak jak mówisz to chyba, tego nie wykryjesz, a jeżeli nie to:
- wykorzystać zdarzenie onkeypress(lub podobne) i nie pozwalać używać klawiatury
- spr czy znaki są wpisywane "na raz" - musisz cyklicznie spr. czy zmieniła się wartość input-a - gorzej, gdy ktoś wklei wartość, ale to możliwe, że też da się wykluczyć
- spr znaki od a-z i 0-9 i specjalne i w przypadaku kliknięcia takowego znaku skasować go od razu
vokiel
Czytniki kodów kreskowych mają to do siebie, że można w nich zaprogramować postfix. W większości przypadków jest to enter. Co w przypadku stronki, która tylko i wyłącznie ma przyjmować kody oznacza, że możesz sczytywać kod i od razu wysyłać formularz (czyli wpisanie kodu +enter)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.