jonigeht: focus - bildschirmtastatur...

Wunderschönen Guten morgen,

Ich habe mir eine kleine Bildschirmtastatur in Javascript gebastelt, mit diesem soll später auf einem Terminal mit Touchscreen Daten eingegeben werden.

Jetzt habe ich aber folgendes Problem:

Ich habe meine Tastatur bisher so "programmiert" das er immer EINE bestimmt Textbox aus meinem Formular nimmt, ich habe aber mehrere Textboxen die ausgefüllt werden müssen. Also meine Tastatur soll quasi immer das im Moment fokussierte Feld nehmen, und da die Werte eintragen.

Da Stoß ich aber mit meinen kaum vorhandenen Javascript Kenntnissen an meine Grenzen... :( ...

Kann mir wer helfen, wär echt `nen Traum!

Beste,
Jonas

  1. Hi,

    Also meine Tastatur soll quasi immer das im Moment fokussierte Feld nehmen, und da die Werte eintragen.

    Wenn ein Textfeld fokussiert wird, dann wird der Focus-Event ausgelöst. Wenn es verlassen wird, der Blur-Event. Beschäftige dich also mit Event-Handling, und sichere  dir das jeweils aktive Feld, indem Du überall onfocus benutzt.

    Gruß, Cybaer

    --
    Man kann doch sehr leicht jenen tugendhaften Menschen begegnen, (...) die eine Art "unkrümmbaren Zeigefinger" besitzen, der ständig den kalten Wind des Rechthabens ausströmt. (Wolfgang Huber, Bischof)
    Die Tugend jagt nicht den Teufel, sondern den Sündhaften. Damit wird sie zum Terror. (Hans-Ulrich Jörges, Journalist)
    1. Moin,

      Danke für euere schnellen Antworten,

      ich hab mir jetzt mal folgenden quelltext zusammen gedichtet:

      <script type="text/javascript">
      var aktivesfeld;
      function fokussiert(wert)
      {
       aktivesfeld = window.document.form1.wert;
      }
      function Tastatur(wert)
      {
       if(window.document.form1.Shift[0].checked == true)
       {
        wert = wert.toUpperCase();
       }
       aktivesfeld.value = aktivesfeld.value +wert;
      }
      </script>

      <input name="feld1" type="text" id="test" onFocus="fokussiert('feld1')">

      Meiner Meinung nach sollte das klappen :D ... aber tut es leider nicht, ich bekomm im Explorer immer ein Fehler das 'aktivesfeld gleich NULL ist oder kein objekt'

      1. Mahlzeit,

        <script type="text/javascript">
        var aktivesfeld;
        function fokussiert(wert)

        Deine Funktion erwartet also einen Übergabeparameter.

        {
        aktivesfeld = window.document.form1.wert;

        Dieser Parameter muss anscheinend ein Objekt unterhalb des Objekts namens "form1" sein.

        <input name="feld1" type="text" id="test" onFocus="fokussiert('feld1')">

        Wieso übergibst Du dann also einen String?

        Meiner Meinung nach sollte das klappen :D ... aber tut es leider nicht, ich bekomm im Explorer immer ein Fehler das 'aktivesfeld gleich NULL ist oder kein objekt'

        Der String 'feld1' ist ja auch kein Objekt. Wie wär's stattdessen mit folgendem:

        <script type="text/javascript">  
        [code lang=javascript]var aktivesfeld; // globale Variablen sind zwar eigentlich Scheiße, aber in diesem Fall geht's damit wohl schneller als mit einer umfangreichen Objektkonstruktion  
          
        function fokussiert(obj) {  
          if (obj) {  
            aktivesfeld = obj;  
          }  
        }
        

        </script>
        <input name="feld1" type="text" id="test" onFocus="fokussiert(this);">[/code]

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. 100%ig ... so funktioniert es!!

          Aller besten Dank!!

          Jonas

        2. Hi,

          var aktivesfeld; // globale Variablen sind zwar eigentlich Scheiße, aber in diesem Fall geht's damit wohl schneller als mit einer umfangreichen Objektkonstruktion

          Wenn ich eine Funktion habe, die für die Tasteneingabe verantwortlich ist (z.B. makeInput()), dann kann man statt der globalen Variablen auch enfach diese Funktion mit einer entsprechenden Eigenschaft versehen (z.B. makeInput.activeElement=obj)

          Gruß, Cybaer

          --
          Man kann doch sehr leicht jenen tugendhaften Menschen begegnen, (...) die eine Art "unkrümmbaren Zeigefinger" besitzen, der ständig den kalten Wind des Rechthabens ausströmt. (Wolfgang Huber, Bischof)
          Die Tugend jagt nicht den Teufel, sondern den Sündhaften. Damit wird sie zum Terror. (Hans-Ulrich Jörges, Journalist)
  2. Mahlzeit,

    Ich habe meine Tastatur bisher so "programmiert" das er immer EINE bestimmt Textbox aus meinem Formular nimmt, ich habe aber mehrere Textboxen die ausgefüllt werden müssen. Also meine Tastatur soll quasi immer das im Moment fokussierte Feld nehmen, und da die Werte eintragen.

    Du könntest jedem <input>, das mit der Bildschirmtastatur ausgefüllt werden soll, einen "onfocus"-Event verpassen, bei dem es sich irgendwie bei einer zentrallen Stelle (dem Tastaturkonstrukt?) meldet und ankündigt, dass es jetzt den Hut auf hat ... o.ä.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|