technoking: Enter-Taste benutzen

Moin Moin ihr netten Helfer.

Habe da eine Frage, wie schaff ich es, mit dem Drücken der Enter-taste eine Funktion in JavaScript zu öffnen.
Bespiel ist, dasss man seine Einloggdaten eingeben und man dann diese mit Enter bestätigen kann.
Sprich, die function check() soll aufgerufen werden.

Kann mir hier jemand helfen?

  1. Hi technoking!

    Bespiel ist, dasss man seine Einloggdaten eingeben und man dann diese mit Enter bestätigen kann.
    Sprich, die function check() soll aufgerufen werden.
    Kann mir hier jemand helfen?

    Rufe im onsubmit des Formulars einfach die entsprechende Funktion auf.

    Der Rückgabewert der Funktion (true oder false) bestimmt dann, ob das Formular abgeschickt wird.

    MfG H☼psel

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

    -- "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    1. Hi technoking!

      »» Bespiel ist, dasss man seine Einloggdaten eingeben und man dann diese mit Enter bestätigen kann.
      »» Sprich, die function check() soll aufgerufen werden.
      »» Kann mir hier jemand helfen?

      Rufe im onsubmit des Formulars einfach die entsprechende Funktion auf.

      Der Rückgabewert der Funktion (true oder false) bestimmt dann, ob das Formular abgeschickt wird.

      MfG H☼psel

      Das Problem ist, es ist kein Formular.
      Hier kannst du es dir ansehen.
      kein Formular, und es wird mit area shape bestätigt.
      Wie binde ich jetzt Enter ein?

      1. Mahlzeit technoking,

        Das Problem ist, es ist kein Formular.

        Dann bau doch ein Formular um Deine Formularelemente herum - frisst doch kein Brot ... ;-)

        Wie binde ich jetzt Enter ein?

        Alternativ könntest Du auch Deinen beiden Eingabefeldern einen onkeyup-Eventhandler verpassen, der bei jedem Tastendruck (bzw. genauer: jedes Mal, wenn eine Taste losgelassen wird) in Aktion tritt. Dazu solltest Du Dich zum Thema "Event-Handling in javascript" informieren.

        MfG,
        EKKi

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

        1. »» Das Problem ist, es ist kein Formular.

          Dann bau doch ein Formular um Deine Formularelemente herum - frisst doch kein Brot ... ;-)

          Mach ich.

          »» Wie binde ich jetzt Enter ein?

          Alternativ könntest Du auch Deinen beiden Eingabefeldern einen onkeyup-Eventhandler verpassen, der bei jedem Tastendruck (bzw. genauer: jedes Mal, wenn

          Ja lol, jetzt springt das Scrip bei jeder Taste an und sagt immer falsche eingabe.
          Ist auch verständlich, da die Eingabe nicht komplett ist.

          eine Taste losgelassen wird) in Aktion tritt. Dazu solltest Du Dich zum Thema "Event-Handling in javascript" informieren.

          hab es dann hiermit versucht:
          <form action="haupt.html" onsubmit="return check();">
          Hier springt das script überhaupt nicht an.
          Ausserdem soll es nicht bei allen Tasten, sondern nur bei ENTER reagieren.

          kannst du mir hierbei nochmal helfen?

          1. Mahlzeit technoking,

            Ja lol, jetzt springt das Scrip bei jeder Taste an und sagt immer falsche eingabe.
            Ist auch verständlich, da die Eingabe nicht komplett ist.

            Deswegen schrieb ich ja auch:

            »» Dazu solltest Du Dich zum Thema "Event-Handling in javascript" informieren.

            Ausserdem soll es nicht bei allen Tasten, sondern nur bei ENTER reagieren.

            Dann prüfe doch in der Funktion, die durch den Event-Handler aufgerufen wird, welche Taste gedrückt wurde - siehe dazu die Eigenschaten which bzw. keyCode des event-Objekts.

            MfG,
            EKKi

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

            1. Ich weis leider nicht genau was du gemeinst hast, hiermit klappt es aber auch, auch wenn ich net weis warum xD
              Vielleicht kann mir das ja noch einer erklären, so sieht das .JS aus.

              function TasteGedrueckt (Ereignis) {
                if (!Ereignis)
                  Ereignis = window.event;
                if (Ereignis.which) {
                  Tastencode = Ereignis.which;
                } else if (Ereignis.keyCode) {
                  Tastencode = Ereignis.keyCode;
                }
              }

              function TasteLosgelassen (Ereignis) {
                if (!Ereignis)
                  Ereignis = window.event;
                if (Ereignis.which) {
                  Tastencode = Ereignis.which;
                } else if (Ereignis.keyCode) {
                  Tastencode = Ereignis.keyCode;
                }
                if (Tastencode == "13")
              {    var Benutzer$;
              var Passwort$;
                      Benutzer$ = document.getElementById("Benutzername").value;
              Passwort$ = document.getElementById("Passwort").value;

                if (Passwort$ == "xxx" && Benutzer$ == "xxx") {    alert("Richtig"); self.location.href = 'haupt.html?time=4+sek.';    } else { {alert("Falsch (Groß-Kleinschreibung beachten)");} }} } document.onkeydown = TasteGedrueckt; document.onkeyup = TasteLosgelassen;
              1. Mahlzeit technoking,

                Ich weis leider nicht genau was du gemeinst hast,

                Warum nicht? Hast Du die entsprechenden, von mir genannten Abschnitte in SELFHTML durchgelesen und verstanden?

                Vielleicht kann mir das ja noch einer erklären, so sieht das .JS aus.

                Was genau hast Du an dem Code nicht verstanden?

                function TasteGedrueckt (Ereignis) {
                  if (!Ereignis)
                    Ereignis = window.event;
                  if (Ereignis.which) {
                    Tastencode = Ereignis.which;
                  } else if (Ereignis.keyCode) {
                    Tastencode = Ereignis.keyCode;
                  }
                }

                Diese Funktion ist so komplett sinnfrei und überflüssig. Warum existiert sie?

                function TasteLosgelassen (Ereignis) {
                  if (!Ereignis)
                    Ereignis = window.event;

                Wenn der übergebene Parameter namens "Ereignis" nicht übergeben oder nicht vorhanden oder falsch ist, dann soll dort das reingetan werden, was in "window.event" steht.

                Hintergrund: in manchen Browser wird bei einem Event-Handler das globale event-Objekt als erster Parameter übergeben.

                  if (Ereignis.which) {

                Wenn das in der Variablen "Ereignis" gespeicherte event-Objekt die Eigenschaft namens "which" besitzt,

                    Tastencode = Ereignis.which;
                  } else if (Ereignis.keyCode) {

                wenn nicht:

                    Tastencode = Ereignis.keyCode;
                  }
                  if (Tastencode == "13")

                Wenn der Tastencode gleich "13" ist (obwohl das ziemlich blödsinnig ist, immerhin sollte in der Variablen kein String, sondern ein numerischer Wert enthalten sein), dann wurde die Enter-Taste gedrückt - also soll nur dann der folgende Code ausgeführt werden.

                document.onkeydown = TasteGedrueckt;
                document.onkeyup = TasteLosgelassen;

                Hier weist Du jetzt dem gesamten Dokument die beiden Funktionen als globale Event-Handler für die genannten Ereignisse zu. Das heißt, sie werden immer aufgerufen, egal wo im Dokument der Benutzer sich gerade befindet bzw. welches Eingabeelement gerade den Fokus hat.

                MfG,
                EKKi

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

                1. Moin EKKi,

                  »» Ich weis leider nicht genau was du gemeinst hast,

                  Warum nicht? Hast Du die entsprechenden, von mir genannten Abschnitte in SELFHTML durchgelesen und verstanden?

                  Ja, nur leider wurde da nicht mein Problem beschrieben.

                  »» function TasteGedrueckt (Ereignis) {
                  »»   if (!Ereignis)
                  »»     Ereignis = window.event;
                  »»   if (Ereignis.which) {
                  »»     Tastencode = Ereignis.which;
                  »»   } else if (Ereignis.keyCode) {
                  »»     Tastencode = Ereignis.keyCode;
                  »»   }
                  »» }

                  Diese Funktion ist so komplett sinnfrei und überflüssig. Warum existiert sie?

                  Gelöscht, hast recht, brauch ich net.

                  »»   if (Ereignis.which) {

                  Wenn das in der Variablen "Ereignis" gespeicherte event-Objekt die Eigenschaft namens "which" besitzt,

                  Was ist which für eine Eigenschaft???

                  »»     Tastencode = Ereignis.keyCode;
                  »»   }
                  »»   if (Tastencode == "13")

                  Wenn der Tastencode gleich "13" ist (obwohl das ziemlich blödsinnig ist, immerhin sollte in der Variablen kein String, sondern ein numerischer Wert enthalten sein), dann wurde die Enter-Taste gedrückt - also soll nur dann der folgende Code ausgeführt werden.

                  Genau so ist es, das hab ich mir sogar noch selber ausgedacht xD.
                  Und obs blödsinn ist weis ich net, aber es funtzt.

                  »» document.onkeydown = TasteGedrueckt;

                  Das obere gelöscht.

                  »» document.onkeyup = TasteLosgelassen;

                  Hier weist Du jetzt dem gesamten Dokument die beiden Funktionen als globale Event-Handler für die genannten Ereignisse zu. Das heißt, sie werden immer aufgerufen, egal wo im Dokument der Benutzer sich gerade befindet bzw. welches Eingabeelement gerade den Fokus hat.

                  Danke, jetzt weis ich warum nichts functioniert wenn die weg sind ;)

                  Dank dir EKKi für die Erklärung.
                  Quelltext jetzt viel kleiner und tuts trotzdem ;)

                  1. Mahlzeit technoking,

                    »» Warum nicht? Hast Du die entsprechenden, von mir genannten Abschnitte in SELFHTML durchgelesen und verstanden?

                    Ja, nur leider wurde da nicht mein Problem beschrieben.

                    Natürlich wird in SELFHTML nicht Dein spezielles Problem beschrieben. Dort werden nur die verschiedenen Strukturen/Objekte/Funktionen usw. beschrieben, ihre Funktionsweise erläutert, Eigenarten genannt und ggf. ein Beispiel gezeigt. Das Verstehen und die entsprechende Übertragung auf Deine konkrete Situation musst Du schon selbst leisten - das kann Dir keiner abnehmen.

                    »» »»   if (Ereignis.which) {
                    »»
                    »» Wenn das in der Variablen "Ereignis" gespeicherte event-Objekt die Eigenschaft namens "which" besitzt,

                    Was ist which für eine Eigenschaft???

                    Das hatte ich Dir bereits einmal verlinkt. SELFHTML besitzt auch eine Suchfunktion - ggf. hilft Dir auch die Quickbar, um Hilfe zu einzelnen Elemente, Funktionen, Objekten usw. zu finden.

                    Es ist wenig sinnvoll, hier im Forum nach Informationen bzw. Hilfe nachzufragen, wenn man sich nicht vorher wenigstens ein bisschen Mühe macht. Dann verliert irgendwann auch der Letzte die Motivation, helfen zu wollen.

                    Genau so ist es, das hab ich mir sogar noch selber ausgedacht xD.
                    Und obs blödsinn ist weis ich net, aber es funtzt.

                    Blödsinn nur insofern, dass Du einen String mit einem numerischen Wert vergleichst. Javascript führt zwar teilweise eine interne Typkonvertierung durch, allerdings kann es dabei manchmal zu unschönen bzw. ungewöhnlichen Ergebnissen kommen. Also gewöhne Dir lieber gleich an, es richtig zu machen.

                    MfG,
                    EKKi

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

      2. Hi,

        Das Problem ist, es ist kein Formular.
        Hier

        Nein, das Problem ist nicht, daß es kein Formular ist, sondern daß die Paßwortabfrage sinnlos ist, wenn die Zugangsdaten lesbar mitgeliefert werden.

        cu,
        Andreas

        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.

        -- Warum nennt sich Andreas hier MudGuard?
        O o ostern ...
        1. Hi,

          »» Das Problem ist, es ist kein Formular.
          »» Hier

          Nein, das Problem ist nicht, daß es kein Formular ist, sondern daß die Paßwortabfrage sinnlos ist, wenn die Zugangsdaten lesbar mitgeliefert werden.

          Man, immer wenn ich was Poste lese ich, dass das mit dem PW Sinnlos ist, ich weis es mittlerweile.

          Trotzdem danke, ich weis du willst mir ja nur helfen ;)

          cu,
          Andreas

          1. Mahlzeit technoking,

            »» Nein, das Problem ist nicht, daß es kein Formular ist, sondern daß die Paßwortabfrage sinnlos ist, wenn die Zugangsdaten lesbar mitgeliefert werden.

            Man, immer wenn ich was Poste lese ich, dass das mit dem PW Sinnlos ist,

            Naja, es liest halt nicht jeder alle Threads. Also musst Du damit leben, dass Dich jeder, der über dieses offensichtliche Sicherheitsrisiko stolpert, Dich auch darauf hinweist.

            Einzige Lösung: Abhilfe schaffen!

            ich weis es mittlerweile.

            Und warum änderst Du es dann nicht? :-)

            MfG,
            EKKi

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

          2. Hi,

            »» Nein, das Problem ist nicht, daß es kein Formular ist, sondern daß die Paßwortabfrage sinnlos ist, wenn die Zugangsdaten lesbar mitgeliefert werden.
            Man, immer wenn ich was Poste lese ich, dass das mit dem PW Sinnlos ist, ich weis es mittlerweile.

            1. der einzige Thread, den ich in letzter Zeit dazu gelesen habe, war nicht von technoking, sondern von René. Warum schreibst Du unter verschiedenen Namen?
            2. Warum machst Du zum praktisch gleichen Thema (geht ja immer noch um Deinen Login) einen zweiten Thread auf? Hättest Du im ersten Thread weitergemacht, hätte ich gesehen, daß Du diesen Hinweis schon bekommen hast.

            Insofern: selber schuld.

            Und 3., wenn Du es schon weißt:
            Warum hast Du es noch nicht geändert?

            cu,
            Andreas

            Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.

            -- Warum nennt sich Andreas hier MudGuard?
            O o ostern ...