phillip: javascript problem - im IE funktioniert, im FF nicht

moin moin!

also ich habe einen kleinen login, bei dem jeweils das hintergrundbild getauscht wird, wenn man in ein input klickt (also bei onfocus und onblur).

das sieht so aus:

Code:

<input name="login" type="text" class="login" onFocus="login_bg_hide();" onBlur="login_bg_show();">
<input name="passwd" type="password" class="pass" onFocus="pass_bg_hide();" onBlur="pass_bg_show();">

hier noch die funktionen. glaub aber nicht, dass es an denen liegt:

Code:

function login_bg_show() {
  if (document.getElementById('login').value == '')
    { document.getElementById('login').style.backgroundImage='url(img/username.png)'; }
  else
    { document.getElementById('login').style.backgroundImage='url(img/loginfeld.png)'; }
}

function login_bg_hide() {
  document.getElementById('login').style.backgroundImage='url(img/loginfeld.png)';
  //alert('LOL');
}

function pass_bg_show() {
  if (document.getElementById('passwd').value == '')
    { document.getElementById('passwd').style.backgroundImage='url(img/password.png)'; }
  else
    { document.getElementById('passwd').style.backgroundImage='url(img/loginfeld.png)'; }
}

function pass_bg_hide() {
  document.getElementById('passwd').style.backgroundImage='url(img/loginfeld.png)';
}

im internet explorer werden die funktionen aufgerufen, im ff nicht.

weiss vllt jemand wieso?

daaanke,
phillip

  1. Hallo

    Hast du schon mal unter Extras->JavascriptKonsole geschaut?
    Werden dort irgendwelche Fehlermeldungen ausgegeben?

    Ansonsten: wenn du vermutest, dass die Funktionen gar nicht aufgerufen werden: einfach mal ein alert("bla"); an den Anfang der Funktion stellen und testen, ob sie wirklich nicht aufgerufen werden. Ist vielleicht etwas umständlich, aber zum groben debuggen reicht es.

    Liebe Grüße mbr

    1. Hallo

      Hast du schon mal unter Extras->JavascriptKonsole geschaut?
      Werden dort irgendwelche Fehlermeldungen ausgegeben?

      dort steht:
      Fehler: document.getElementById("login") has no properties
      Zeile: 306

      306 ist diese zeile: document.getElementById("login").style.backgroundImage="url(img/loginfeld.png)";

      1. Hi,

        Hast du schon mal unter Extras->JavascriptKonsole geschaut?
        Werden dort irgendwelche Fehlermeldungen ausgegeben?
        dort steht:
        Fehler: document.getElementById("login") has no properties
        Zeile: 306

        genau, denn es gibt ja auch kein Element mit der ID "login", deswegen liefert getElementById() null. Das hat Jonny 5 schon mit Adlerblick entdeckt.
        Dass der IE ersatzweise ein Element mit dem Namen(!) anstatt der ID "login" findet, ist eigentlich ein Bug des IE.

        So long,
         Martin

        --
        F: Was ist schneller: Das Licht oder der Schall?
        A: Offensichtlich der Schall. Wenn man den Fernseher einschaltet, kommt immer erst der Ton, und dann erst das Bild.
  2. Lieber phillip,

    hast Du Javascript deaktiviert?

    Teste es mit dieser Code-Zeile in der Adressleiste: javascript:alert('JavaScript aktiv!');

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

  3. <input name="login" type="text" class="login" onFocus="login_bg_hide();" onBlur="login_bg_show();">
    <input name="passwd" type="password" class="pass" onFocus="pass_bg_hide();" onBlur="pass_bg_show();">

    weiss vllt jemand wieso?

    »»...name=""...

    probier mal ... id="" ... wenn du die Elemente mit
    getElementById ansprichst ;o)

    lG,
    Jonny 5

    1. hi,

      probier mal ... id="" ... wenn du die Elemente mit
      getElementById ansprichst ;o)

      Oder, alternativ, wenn es nur um Formularfelder geht, schieße nicht mit DOM-2-Kanonen auf Spatzen - der Zugriff über die forms- und elements-Collections funktioniert (idR.) nach wie vor wunderbar.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }