Linuchs: ERLEDIGT: Scanner liefert TAB als Suffix, wie erkenne ich das? Keydown greift nicht?

Moin,

HAT SICH ERLEDIGT, der Tab von Scanner wird als keydown erkannt.

heute ist mein EAN Scanner gekommen, damit ich meine Einkäufe erfassen kann.

Bisher habe ich EAN per Tastatur eingegeben und ab 3 Stellen kommen per Ajax Vorschläge, von denen ich einen per Klick übernehmen kann. Das soll auch so bleiben:

Der Scanner liefert die EAN mit dem Suffix TAB. Dann muss ich keine Vorschläge holen, sondern gezielt diesen einen Datensatz und damit die Felder der form füllen, als ob ich einen Vorschlag gewählt hätte. Falls der Satz fehlt, muss der Artikel neu angelegt werden.

<input
id          = "such_ean"
type        = "text"
name        = "ean"
size        = 13
maxlength   = 13
value       = "[such_ean]"
title       = "such_ean (20)"
oninput     = "getEan( this )"
onblur      = "holeEan( this )"

> &nbsp; art_id <span id="id">[id]</span></p>

onblur greift sehr wohl, aber das Feld und sein Wert steht der function holeEan nicht mehr zur Verfügung.

Mit einem addEventListener auf "such_ean" komme ich auch nicht weiter, da wird ja kein key gedrückt.

Und es müssen nicht immer 13 Stellen sei, es gibt kürzere EAN.

Hat jemand eine Idee?

Gruß, Linuchs

P.S. Der Scanner kann auch [Enter] liefern, dann wird aber die form abgeschickt.

  1. Hallo Linuchs,

    aber das Feld und sein Wert steht der function holeEan nicht mehr zur Verfügung.

    Und wieso sollte das so sein?

    function holeEAN(ean_eingabe) {
    console.log(ean_eingabe.value);
    }
    

    zeigt mir den aktuellen Wert des Feldes an, wenn ich das HTML so konstruiere wie Du.

    Von Labels (die Du mangels ID garantiert nicht drin hast), CSS Margins statt &nbsp; und addEventListener("blur"...) statt onblur="..." rede ich lieber gar nicht, das interessiert Dich ja ohnehin nicht.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Hallo Rolf,

      Ist onblur (w3schools.com) veraltet? Hat doch bisher funktioniert.

      Mit blur statt onblur wird das Vorschlagsfeld nicht geschlosssen:

      Von Labels (die Du mangels ID garantiert nicht drin hast)

      Was soll das?

          <p><label for="such_ean">EAN Code</label>
      <input
      id          = "such_ean"
      type        = "text"
      name        = "ean"
      size        = 13
      maxlength   = 13
      value       = "[such_ean]"
      title       = "such_ean (20)"
      oninput     = "getEan( this )"
      blur        = "getEanSchliessen()"
      
      ></p>
      
      

      CSS Margins statt &nbsp;

      Bist du heute auf Krawall gebürstet?

      @media (min-width: 30.01em) {
        l, label {
          display: inline-block;
          width: 12em;
        }
      }
      
      1. Hallo Linuchs,

        Bist du heute auf Krawall gebürstet?

        Nö. Auf blöd. Gut, dass „heute“ so gut wie rum ist, kann morgen nur besser werden.

        Sorry.

        Ist onblur veraltet?

        Event-Handling mit on-Attributen ist seit Jahrzehnten veraltet. Sicherlich hast Du schon von unaufdringlichem JavaScript und addEventListener gehört?

        Das Problem dabei war allerdings der IE, der vor Version 9 seine eigene attachEvent-Methodik hatte (und damit einer der Hauptgründe für die Existenz von jQuery war). Aber immerhin hatte er die schon im vorigen Jahrtausend (ab IE 4).

        Rolf

        --
        sumpsi - posui - obstruxi