Enrico: TypeError: is not a function

Beitrag lesen

Hallo,

ich erstelle gerade eine Validierung von Formulareingaben über JavaScript und arbeite hier mit einem Array-Objekt "Fehler", dem ich entweder einen Fehler in der Form "Formularfeld" : "Fehlermeldung" übergebe oder aus dem ich einen Fehler, wenn er nicht mehr besteht, rausgelösche:

  
Fehler = {};  
  
function Pflichtfeld (Wert, NameKlartext)  
{  
   if (!Wert || Wert === "" || (typeof Wert.length === "undefined" && Wert.length === 0))  
   {  
      if (!Fehler.contains (NameKlartext))  
      {  
         if (NameKlartext == "Name")  
            Fehler.add ("Name", "Dein Name fehlt");  
         else  
            if (NameKlartext == "Text")  
               Fehler.add ("Text", "Deine Nachricht fehlt");  
            else  
               ...  
      }  
   }  
   else  
      Fehler.remove (NameKlartext);  
}  
  
Array.prototype.contains = function (obj)  
{  
   var i = this.length;  
  
   do  
   {  
      if (this[i] === obj)  
         return i;  
  
      i--;  
   }  
   while (i !== -1)  
  
   return -1;  
}  
  
Array.prototype.add = function (key, value)  
{  
   if (this.contains (key))  
      this[key] = value;  
   else  
   {  
      this.push (key);  
      this[key] = value;  
   }  
}  
  
Array.prototype.remove = function (key)  
{  
   var l = this.length;  
  
   for (var i = 0; i < l; ++i)  
   {  
      if (this [i] == key)  
      {  
         this.splice (i, 1);  
         return true;  
      }  
   }  
  
   return false  
}  

Leider bekomme ich aber die Fehlermeldung "TypeError: Fehler.contains is not a function".

Ich vermute, dass dann die weiteren Methoden "add" und "remove" leider auch nicht funktionieren werden.

Was habe ich falsch gemacht?

Danke und Gruß,
Enrico