Ralf: getElementById mehere gleiche id's namespace

Hallo,

die Überschrift ist etwas chaotisch aber ich wußte nicht wie ich mein Problem in kurzen Worten besser beschreiben sollte;-), hier etwas ausführlicher:

Ich habe eine html Seite in einer Art Intranet. Diese wird ständig erweitert, u.a. um einige Formulare die dann dynamisch bei Bedarf ein- und ausgeblendet werden. Die Formularfelder werden dann mit JavaScript ausgelesen und beschrieben. Soweit, sogut.

Nun kann es sein (weil mehere Leute daran schreiben oder einer den Überblick verliert :-), dass für zwei Felder in _verschiedenen_ Formularen die gleiche id vergeben wird. Da die javaScripts alle mit document.getElementById auf die Formularfelder zugreifen, gibts hier dann murks!

Man könnte den Zugriff zwar über document.form.element.value machen aber das möchte ich eigentlcih nicht.

Wie kann man die die Formulare in unterschiedlichen namespaces anordnen, so dass man z.B. in der Art document.myNamaspace.getElementById auf ein Elemat zugreifen kann?

Gruß
Ralf

  1. Hi!

    Wie kann man die die Formulare in unterschiedlichen namespaces anordnen, so dass man z.B. in der Art document.myNamaspace.getElementById auf ein Elemat zugreifen kann?

    Du Könntest bei der Vergabe der IDs ein Prefix verwenden.

    off:PP

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
  2. Wie kann man die die Formulare in unterschiedlichen namespaces anordnen, so dass man z.B. in der Art document.myNamaspace.getElementById auf ein Elemat zugreifen kann?

    Im Prinzip gar nicht.

    Du kannst aber, wenn du unbedingt diese Art benutzen möchte (was ich an deiner Stelle nicht tun würde), mit einem JS Framework arbeiten. Diese benutzen Seletcor Engines, mit deren Hilfe du die Elemente ansprechen kannst, wie mit CSS. Zumindest Sly arbeitet so.

    Wobei ich mich aber Frage, warum du nicht über die forms und elements Collection gehen willst, da es gegen diese eigentlich nichts einzuwenden gibt.

    Struppi.

  3. Hi,

    Nun kann es sein (weil mehere Leute daran schreiben oder einer den Überblick verliert :-), dass für zwei Felder in _verschiedenen_ Formularen die gleiche id vergeben wird.

    Da HTML nicht zuläßt, daß es mehrere identische Werte für id-Attribute in einem einzigen HTML-Dokument gibt, ist HIER bereits der Murks passiert.

    Da die javaScripts alle mit document.getElementById auf die Formularfelder zugreifen, gibts hier dann murks!

    SISO-Prinzip: Shit in, Shit out.

    Man könnte den Zugriff zwar über document.form.element.value machen aber das möchte ich eigentlcih nicht.

    Wenn Du bei dem Zugriff über getElementById bleiben willst, hilft nur, die id-Werte sauber (d.h. eindeutig) zu vergeben.

    Wie kann man die die Formulare in unterschiedlichen namespaces anordnen, so dass man z.B. in der Art document.myNamaspace.getElementById auf ein Elemat zugreifen kann?

    Vergebt die Ids in der Art form1_elementid, form2_elementid und greift dann per document.getElementById("form1_elementid") darauf zu.
    Mit anderen Worten: vergebt eindeutige ids.

    Oder geht über die forms-Collection und die Element-Namen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind unverschämt, werden ignoriert. Das Forum existiert.