[JavaScript] Enter als Tab-Taste

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] Enter als Tab-Taste

    Habe ein Formular mit 10 Feldern: Feld0 bis Feld9. Vor dem Absenden soll überprüft werden, ob Feld9 > 0. Soweit kein Problem. Aber nun: der Cursor soll mit jedem mißglückten Absendeversuch weiterspringen, von Feld0 bis Feld9 und dann wieder zu Feld0 etc. unabhängig davon, welche Eingaben in den jeweiligen Feldern stehen und erhalten bleiben. Die Entertaste soll sich also wie die Tab-Taste verhalten, solange in Feld9 kein Eintrag gemacht wurde. Tausend Dank im voraus.

  • #2
    Re: [JavaScript] Enter als Tab-Taste

    kein ansatz?

    ok, *projekthilfe*
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Projekthilfe?

      Verstehe ich nicht so ganz. Ist doch eine ganz normale javascript-Frage. Ich möchte document.Formular.Feld[x].focus() in einer Schleife laufen lassen. Weiß aber leider nicht, wie man den aktuellen Cursor-Stand ausliest und übergibt. Könnte mir durchaus vorstellen, daß eine Lösung des Problems allgemeininteressierend ist, wer greift schon gern immer zur Tab-Taste vor allem bei rein-numerischen Formularen.

      Kommentar


      • #4
        Re: Projekthilfe?

        Original geschrieben von bibliopola
        Verstehe ich nicht so ganz.
        ist ganz einfach:
        wer keinerlei eigenen ansatz vorzeigt, also vermutlich nur was fertiges bekommen möchte, der wird entweder zu den scriptgesuchen oder zur projekthilfe verschoben.

        Weiß aber leider nicht, wie man den aktuellen Cursor-Stand ausliest und übergibt.
        "auslesen" kannst du den gar nicht.
        aber du kannst dir ja beim "betreten" eines feldes merken, dass eben das gerade passiert ist - eventhandler onFocus.


        Könnte mir durchaus vorstellen, daß eine Lösung des Problems allgemeininteressierend ist, wer greift schon gern immer zur Tab-Taste vor allem bei rein-numerischen Formularen.
        eine der grundlegenden accessibility-regeln des w3c lautet: don't break the user interface.
        genau das machst du aber, wenn tasten plötzlich nicht mehr das bewirken, was auf allen anderen seiten standard ist.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          onFocus

          Wenn ich in nachstehendem script in Zeile 8 document.Formular.Feld2.focus() durch document.Formular.focus1.focus() austausche, funktioniert es nicht mehr. Bin recht unerfahren in javascript (und benutze es auch aus guten Gründen kaum), brauche aber diese kleine Eingabehilfe dringend im Rahmen eines PHP-Projekts.

          <html>
          <head>
          <title>Formular</title>
          <script type="text/javascript">
          function chkFormular () {
          if (document.Formular.Feld4.value == "") {
          alert("Formular wird nicht abgeschickt!");
          document.Formular.Feld2.focus();
          return false;
          }
          }
          </script>
          </head>
          <body>

          <h1>Formular</h1>

          <form name="Formular" action=""
          method="post" onSubmit="return chkFormular()">
          <pre>
          Feld1: <input type="text" size="40" name="Feld1" onFocus="var focus1='Feld2'">
          Feld2: <input type="text" size="40" name="Feld2" onFocus="var focus1='Feld3'">
          Feld3: <input type="text" size="40" name="Feld3" onFocus="var focus1='Feld4'">
          Kontrollfeld: <input type="text" size="40" name="Feld4" onFocus="var focus1='Feld1'">
          Formular: <input type="submit" value="Absenden"><input type="reset" value="Abbrechen">

          </pre>
          </form>

          </body>
          </html>

          Kommentar


          • #6
            Wie auch, es gibt kein Feld focus1. Und was bezweckst du mit onFocus="..."?
            EDIT:
            Ah jetzt wirds mir klar: Du schreibst den Namen des nächsten Feldes in die Variable focus1 und ...
            Warum so umständlich,
            onKeyDown="if(event.keyCode==13) event.keyCode=9;"
            macht aus Enter Tab.

            Zuletzt geändert von onemorenerd; 05.07.2005, 17:36.

            Kommentar


            • #7
              Was ich bezwecke? Der Cursor soll bei jedem Enter genau 1 Feld weiterspringen, solange die Bedingung Feld4 ist leer erfüllt ist.

              Kommentar


              • #8
                onKeyDown="if(event.keyCode==13 && document.Formular.Feld4.value == '') event.keyCode=9;"

                Kommentar


                • #9
                  Besten Dank

                  Besten Dank an onemorenerd. Funktioniert sehr gut. Kleiner Schönheitsfehler: es klappt nur im MSIE, Mozilla und Opera sagen nein. Wär natürlich schön... - aber, egal, ich bin heilfroh. Danke!

                  Kommentar

                  Lädt...
                  X