Klaus: Fehlermeldung: [Object Error] beim Zugriff auf ein Element

Hi!

warum verursacht die erste Variante im Internet Explorer ein Fehler?
Internet Explorer Fehlermeldung: [Object Error]

Das Formularelement xy wird dynamisch per javaScript erzeugt.

In Opera 9.64 und Firefox 3.0.10 funktionieren beide Varianten.

Variante 1 funktioniert nicht im Internet Explorer

function replaceXY(obj){  
  try{  
    var elementName = "xy";  
    var check = false;  
    for(var i = 0; i < obj.elements.length; i++){  
      if(obj.elements[i].name == elementName){  
        check = true;  
        break;  
      }  
    }  
    if(check){  
      var newValue = "$Expdir$/" + "" + obj.elements[elementName].value;  
      obj.test.options[obj.test.selectedIndex].value = newValue;  
    }  
  }  
  catch(e){  
    return false;  
  }  
  return true;  
}

Variante 2 funktioniert im Internet Explorer

function replaceXY(obj){  
  try{  
    var elementName = "xy";  
    var elementObject;  
    var check = false;  
    for(var i = 0; i < obj.elements.length; i++){  
      if(obj.elements[i].name == elementName){  
        elementObject = obj.elements[i];  
        check = true;  
        break;  
      }  
    }  
    if(check){  
      var newValue = "$Expdir$/" + "" + elementObject.value;  
      obj.test.options[obj.test.selectedIndex].value = newValue;  
    }  
  }  
  catch(e){  
    return false;  
  }  
  return true;  
}

Klaus

  1. Hi,

    warum verursacht die erste Variante im Internet Explorer ein Fehler?
    Internet Explorer Fehlermeldung: [Object Error]

    Wo genau (Zeile)?

    Das Formularelement xy wird dynamisch per javaScript erzeugt.

    Das ist im IE oftmals kritisch, insb. was den anschliessenden Zugriff über den Feldnamen angeht.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hi!

      »» warum verursacht die erste Variante im Internet Explorer ein Fehler?
      »» Internet Explorer Fehlermeldung: [Object Error]

      Wo genau (Zeile)?

      12, wenn ich mich nicht verzählt habe
      die fehlermeldung kommt auch, wenn ich nur "alert(obj.elements[elementName].value);" verwende.

      »» Das Formularelement xy wird dynamisch per javaScript erzeugt.

      Das ist im IE oftmals kritisch, insb. was den anschliessenden Zugriff über den Feldnamen angeht.

      evtl. liegt es ja daran

      Karl