rob: getElementsByName und Sonderzeichen

Beitrag lesen

Hi!

var hidefields = new Array('Besuchszeit von', 'Besuchszeit bis', 'Wiedervorlage_änderung');

Das sind die Namen deiner Input-Felder? Habe ich das richtig verstanden?

<input type="text" name="Besuchszeit von">
<input type="text" name="Besuchszeit bis">
<input type="text" name="Wiedervorlage_&auml;nderung">

Das würde ich mich nicht trauen...
Jegliche Whitespaces und Sonderzeichen würde ich niemals als Namen/Bezeichner verwenden.

Wenn ich mir allerdings die HTML-4.01-Transitional-DTD ansehe (Auszug):

<!ENTITY % InputType
  "(TEXT | PASSWORD | CHECKBOX |
    RADIO | SUBMIT | RESET |
    FILE | HIDDEN | IMAGE | BUTTON)"
   >

<!-- attribute name required for all but submit and reset -->
<!ELEMENT INPUT - O EMPTY              -- form control -->
<!ATTLIST INPUT
  %attrs;                              -- %coreattrs, %i18n, %events --
  type        %InputType;    TEXT      -- what kind of widget is needed --
  name        CDATA          #IMPLIED  -- submit as part of form --
  >

dann ist das Name-Attribut vom Typ CDATA (Character Data).
Das heißt, daß & als einfaches Zeichen interpretiert wird und damit seine besondere Bedeutung (zur Einleitung von Entities) verliert.

Ich würde dir in jedem Fall dazu raten, daß du alle Leer- und Sonderzeichen komplett aus deinen Namen rauslässt. Damit ersparst du dir einige Probleme.

Schöner Gruß,
rob