• Tag,

    wieso sagt er mir das meine Funktion nicht definiert ist?

    Spoiler anzeigen
    HTML
    <input type="text" onfocus="myFunction(this);">
    Spoiler anzeigen
    JavaScript
    <script>
    function myFunction(x) {
    alert(x);
    }
    </script>
  • Ich Rate mal. Hast du erst das Script und dann das Textfeld im html stehen ,oder andersrum ?

    Aber wie schon gesagt wurde ,richtig helfen kann man dir nur mit Kompletten Code oder Link zur Seite

  • Schwer zu sagen, ohne den Code im Zusammenhang zu sehen.

    Kannst Du den komplett posten oder einen Link, wo wir das ansehen können?

    alles in der index.php

    Spoiler anzeigen
    Spoiler anzeigen
  • Grundsätzlich ja, aber Event-Attribute werden beim rendern des Layout bereits aufgelöst. Und das erzeugt in diesem Fall genau das Gegenteil des Erwarteten, denn die Funktion ist zu dem Zeitpunkt, wo das <input>-Tag gerendert wird nicht existent, sondern wird erst danach definiert.

    ;)

    Deshalb empfehle ich auch immer, die Attribute für Ereignisse nicht zu nutzen, sondern per Listener zu setzen.

  • Grundsätzlich ja, aber Event-Attribute werden beim rendern des Layout bereits aufgelöst. Und das erzeugt in diesem Fall genau das Gegenteil des Erwarteten, denn die Funktion ist zu dem Zeitpunkt, wo das <input>-Tag gerendert wird nicht existent, sondern wird erst danach definiert.

    ;)

    Deshalb empfehle ich auch immer, die Attribute für Ereignisse nicht zu nutzen, sondern per Listener zu setzen.

    Danke für denn Tipp erstmal, aber wie setzt du die Ereignisse mit nem Listener? haste ein kleines Beispiel? :D

  • Bspw. so:

    JavaScript
    document.querySelector( '.input-email' ).addEventListener('focus', function(e) { /* ... */ });
    document.querySelector( '.input-email' ).onfocus = function(e) { /* ... */ };

    oder wenn es jQuery sein muß halt so:

    JavaScript
    $( '.input-email' ).on( 'focus', function() { /* ... */ } );

    Das sollte man dann aber wieder innerhalb von .ready() machen...

  • Grundsätzlich ja, aber Event-Attribute werden beim rendern des Layout bereits aufgelöst. Und das erzeugt in diesem Fall genau das Gegenteil des Erwarteten, denn die Funktion ist zu dem Zeitpunkt, wo das <input>-Tag gerendert wird nicht existent, sondern wird erst danach definiert.

    ;)

    Deshalb empfehle ich auch immer, die Attribute für Ereignisse nicht zu nutzen, sondern per Listener zu setzen.

    Ok das ergibt ein sinn. Habe ich mir auch noch nie gedanken rüber gemacht weil so sachen wie onfocus="" und onclick="" und so nie oder sehr selten mit in den html Code schreibe und den Fehler so noch nicht hatte . Ist interesant das man doch immer wieder was dazu lernt ,obwohl man denkt das wußte ich doch eigentlich schon .:)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!