DD: document['this'] has no properties

Ja, diese "has no properties"- Fehlermeldung. Ich bin schon der ganzen Zeit mit google am durchforsten sämtlicher Foren, aber irgendwie mag es mir nicht gelingen, den Fehler zu finden. Ich meine mich daran zu erinnern, dass es vorher sogar schon funktioniert hatte :S

Der Dazugehörige Javascriptteil:

function loeschen() {
 if(document.this.value=="0.00"){
 document.this.value="";
     }

else {
  document.this.focus();
     document.this.select();
   }

}
---
Wenn der Wert vom Feld 0.00 ist solls zurück gesetzt werden, wenn nicht einfach markiert.

Und der HTML Ausschnitt:

<form>
<input type="text" onclick="loeschen()">
<input type="text" onclick="loeschen()">
<input type="text" onclick="loeschen()">
<input type="text" onclick="loeschen()">
</form>

so in kurzform.

Wenn ich das Element statt this direkt mit dem Namen anspreche funktioniert es. Da ich die textfelderliste allerdings noch erweitern will, soll das so einfach wie möglich werden.

Könnte mir da vll jemand weiterhelfen?

  1. Hi,

    Ja, diese "has no properties"- Fehlermeldung.
    if(document.this.value=="0.00"){

    Hast Du denn irgendwo ein Unterobjekt namens this ins document-Objekt gesetzt?

    <input type="text" onclick="loeschen()">

    Vermutlich willst Du hier der Funktion loeschen() den Parameter this übergeben (und dann in der Funktion benutzen).
    Im Eventhandler ist this das Element, zu dem der Eventhandler gehört.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    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.
    1. Danke erst mal für deine Antwort :)

      Bin noch ziemlich neu in Javascript, deswegen hab ich noch nicht so total den durchblick. Hatte das mit dem .this so verstanden, dass damit das Element angesprochen wird, was man in diesem Falle anklickt.

      Könntest dus vll nochmal für doof erklären, oder einfach den code so anpassen, dasses passen müsste?

      1. Hi,

        Bin noch ziemlich neu in Javascript, deswegen hab ich noch nicht so total den durchblick.

        das ist nicht schlimm - aber ein guter Grund, auf Missverständnisse umso intensiver einzugehen :-)

        Hatte das mit dem .this so verstanden,

        ".this" ist eine Untereigenschaft irgend einen Objektes. "this" ist ein Objekt, das den aktuellen Kontext enthält. Diese beiden Dinge haben exakt gar nichts miteinander zu tun.

        dass damit das Element angesprochen wird, was man in diesem Falle anklickt.

        Ja - sofern Du Dich im Kontext dieses Elementes befindest. Innerhalb des Event-Handlers ist dies der Fall, dort gibt es etwas namens "this". Sobald Du den Event-Handler verlassen hast, also beispielsweise in einer Funktion bist, gibt es dieses(!) "this" nicht mehr. Dafür ein anderes: das window-Objekt.

        Könntest dus vll nochmal für doof erklären, oder einfach den code so anpassen, dasses passen müsste?

        Ich glaube nicht, dass das nötig ist, denn Du weißt jetzt sicher alles, was Du wissen musst: dass "this" ein eigenständiges Objekt ist, keine Eigenschaft; wo "this" dem entspricht, was Du haben möchtest; und wie man etwas an eine Funktion übergibt, weißt Du vermutlich auch schon. Ansonsten findest Du dies im entsprechenden SelfHTML-Kapitel.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. @@DD:

    function loeschen(element)  
    {  
      if(element.value=="0.00")  
      {  
        element.value="";  
      }  
      else  
      {  
        element.focus();  
        element.select();  
      }  
    }
    
    <form>  
      <input type="text" onclick="loeschen(this)">  
      <input type="text" onclick="loeschen(this)">  
      <input type="text" onclick="loeschen(this)">  
      <input type="text" onclick="loeschen(this)">  
    </form>
    

    Den Vergleich gegen "0.00" solltest du nochmal überdenken.

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. @@DD:

      function loeschen(element)

      {
        if(element.value=="0.00")
        {
          element.value="";
        }
        else
        {
          element.focus();
          element.select();
        }
      }

      
      >   
      > ~~~html
      
      <form>  
      
      >   <input type="text" onclick="loeschen(this)">  
      >   <input type="text" onclick="loeschen(this)">  
      >   <input type="text" onclick="loeschen(this)">  
      >   <input type="text" onclick="loeschen(this)">  
      > </form>
      
      

      Ahhh, wunderbar, das funkt prima :)

      Den Vergleich gegen "0.00" solltest du nochmal überdenken.

      Das passt schon, weil der das alles beim laden af 0.00 setzt :)

      Live long and prosper,
      Gunnar

      Ich danke dir :)