Franz B.: this.name + IE erzeugt Fehler

<script type="text/javascript">
  function hintergrundfocus(name)
  {
    window.document.kontakt.eval(name).style.backgroundColor="#000000";
  }
</script>

<form name="kontakt">
<input name="firma" onFocus="hintergrundfocus(this.name);"><br>
</form>

Hi,

wieso gibt der Internetexplorer bei diesem Code einen Fehler aus ? Beim Firefox geht es. Irgendwie hat der IE probleme mit dem this.name

  1. Hallo Franz B.,

    wieso gibt der Internetexplorer bei diesem Code einen Fehler aus ? Beim Firefox geht es. Irgendwie hat der IE probleme mit dem this.name

    Nein, hat er nicht. Ein alert(name) hätte Dir gezeigt, das er es kann.

    Versuch mal folgendes:

      
      function hintergrundfocus(name)  
      {  
        //alert(name);  
     document.forms['kontakt'].elements[name].style.backgroundColor="#000000";  
      }  
    
    

    Mit freundlichem Gruß
    Micha

    --
    LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript || JS Tetris :: für zwischendurch
    1. Hallo,

      es funktioniert trotzdem nicht.

      1. Hallo Franz,

        es funktioniert trotzdem nicht.

        Sicher?

        Mit freundlichem Gruß
        Micha

        --
        LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript || JS Tetris :: für zwischendurch
  2. Hi,

    function hintergrundfocus(name)

    name ist ein reserviertes Wort.

    window.document.kontakt.eval(name).style.backgroundColor="#000000";

    wozu diese unsinnige Konstruktion? Wenn Du:

    <input name="firma" onFocus="hintergrundfocus(this.name);">

    änderst in:
    <input name="firma" onfocus="hintergrundfocus(this);">
    bekommst Du eine Referenz auf das input-Element, die Du ohne Umwege nutzen kannst.

    freundliche Grüße
    Ingo

    1. Hallo Ingo.

      function hintergrundfocus(name)
      name ist ein reserviertes Wort.

      http://de.selfhtml.org/javascript/sprache/reserviert.htm#uebersicht@title=Sicher?

      Einen schönen Samstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
      [HTML Design Constraints: Logical Markup]
      1. Hi,

        name ist ein reserviertes Wort.

        http://de.selfhtml.org/javascript/sprache/reserviert.htm#uebersicht@title=Sicher?

        jetzt nicht mehr. ;-)
        Dennoch würde ich name sicherheitshalber nicht verwenden und erst recht nicht i.V. mit eval.

        freundliche Grüße
        Ingo

        1. Hallo Ingo.

          Dennoch würde ich name sicherheitshalber nicht verwenden und erst recht nicht i.V. mit eval.

          Einmal abgesehen davon, dass ich eval sowieso nie einsetzen würde: stimmt, beim IE weiß man nie.

          Einen schönen Samstag noch.

          Gruß, Ashura

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
          [HTML Design Constraints: Logical Markup]
      2. Hi,

        name ist ein reserviertes Wort.
        http://de.selfhtml.org/javascript/sprache/reserviert.htm#uebersicht@title=Sicher?

        Ja. Listehn oder her: Mit name als Variablennamen gibt es Probleme - wenn auch nicht in allen Browsern.

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  3. <script type="text/javascript">
      function hintergrundfocus(name)
      {
        window.document.kontakt.eval(name).style.backgroundColor="#000000";
      }
    </script>

    <form name="kontakt">
    <input name="firma" onFocus="hintergrundfocus(this.name);"><br>
    </form>

    Hi,

    wieso gibt der Internetexplorer bei diesem Code einen Fehler aus ? Beim Firefox geht es. Irgendwie hat der IE probleme mit dem this.name

    Weder das eine noch das andere funktioniert.

  4. Hallo Franz,

    <script type="text/javascript">
      function hintergrundfocus(name)
      {
        window.document.kontakt.eval(name).style.backgroundColor="#000000";
      }
    </script>

    <form name="kontakt">
    <input name="firma" onFocus="hintergrundfocus(this.name)"><br>
    </form>

    Bist du sicher, dass eval() eine Methode des Formularobjekts namens "kontakt" ist?

    Warum überhaupt so umständlich?

    <input name="firma" onFocus="[code lang=javascript]style.backgroundColor='#000000');">[/code]

    oder, wenn du das mit mehreren Input-Feldern machst eben:
    <input name="firma" onFocus="[code lang=javascript]hintergrundfocus(this));">[/code]

    mit einer Funktion:

      
    hintergrundfocus(obj) {  
       obj.style.backgroundColor='#000000';  
    }  
    
    

    Gruß Gernot

    1. Hallo nochmal,

      <input name="firma" onFocus="[code lang=javascript]style.backgroundColor='#000000');">[/code]

      Die schließende Klammer ist natürlich jeweils zuviel, also:

      <input name="firma" onFocus="[code lang=javascript]style.backgroundColor='#000000'">[/code]

      und entsprechend:

      <input name="firma" onFocus="[code lang=javascript]hintergrundfocus(this)">[/code]

      Gruß Gernot