Martin Sommerhalder: Firefox 2.0.0.07 +getElementById("xy").value

Hallo
Die folgende Funktion funktioniert mit IE, Opera, Neoplanet, nicht aber mit Firefox 2.0.0.07:

function SetRecID( newval ) {
  document.getElementById("record").value = newval;
  document.getElementById("form1").submit();
}

Fehlermeldung:
document.getElementById("record") has no properties
document.getElementById("form1") has no properties

Es funktioniert mit:
document.getElementsByName("record")[0].value = newval;
document.getElementsByName("form1")[0].submit();

Kann mir jemand erklären, was ich bei getElementById falsch mache?
Besten Dank
Martin

  1. Fehlermeldung:
    document.getElementById("record") has no properties
    document.getElementById("form1") has no properties

    Es funktioniert mit:
    document.getElementsByName("record")[0].value = newval;
    document.getElementsByName("form1")[0].submit();

    Kann mir jemand erklären, was ich bei getElementById falsch mache?
    Besten Dank
    Martin

    Vermutlich hast du ein Element mit dem Namen "record", aber nicht der ID "record". So könnte das bei dir aussehen: ~~~html

    <div name="record"> inhalt </div>

      
    Wenn du über die ID zugreifen willst, musst du auch eine ID vergeben: ~~~html
      
      
    <div name="record" id="record"> inhalt </div>
    
    1. Hallo,

      »» <div name="record" id="record"> inhalt </div>

      Wobei du entweder Name oder ID vergeben solltest, denn wenn beides mit gleichem Namen definiert ist kann der IE mit getElementById nicht mehr richtig umgegen (und Opera in "älteren" versionen auch nicht).

      Gruß;

      1. Hi,

        »» <div name="record" id="record"> inhalt </div>

        Wobei auch zu berücksichtigen ist, daß div gar kein name-Attribut hat und der IE dann sowieso nicht per getElementsByName darauf zugreifen kann.

        Wobei du entweder Name oder ID vergeben solltest, denn wenn beides mit gleichem Namen definiert ist kann der IE mit getElementById nicht mehr richtig umgegen (und Opera in "älteren" versionen auch nicht).

        Es gibt Fälle, da muß man beides angeben, und sogar unterschiedliche Werte (radiobuttons, die mit label-Elementen verknüpft werden sollen)

        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.