Ina: Elemente manipulieren

Hallo,

bisher dachte ich immer nahezu alle Attribute eines Elementes durch Javascript(eventhandler) ändern zu können.

<input type="text" name="test" value="" size="30" maxlength="200" onclick="this.size='10';" />

Sowas geht zum beispiel problemlos, warum aber nicht bei type?

<input type="text" name="test" value="" size="30" maxlength="200" onclick="this.type='password';" />

<input type="text" name="test" value="" size="30" maxlength="200" onclick="this.type='hidden';" />

Ina

  1. Hi,

    bisher dachte ich immer nahezu alle Attribute eines Elementes durch Javascript(eventhandler) ändern zu können.

    <input type="text" name="test" value="" size="30" maxlength="200" onclick="this.size='10';" />

    Sowas geht zum beispiel problemlos, warum aber nicht bei type?

    Vermutung: Weil du nur mit dem IE getestet hast ...?

    MfG ChrisB

    1. Hi,

      Vermutung: Weil du nur mit dem IE getestet hast ...?

      Das stimmt, aber wer hat denn nun Recht, FF oder IE?

      Nur weil FF das ausführt bedeutet ja nicht, dass es richtig sein muss.
      Und wenn doch, gibt es einen Workaround für den IE?

      Gruss
      Ina

      1. Hi,

        wer hat denn nun Recht, FF oder IE?

        Kommt drauf an, wie historisch man sein moechte.

        Nur weil FF das ausführt bedeutet ja nicht, dass es richtig sein muss.

        DOM Level 1 definiert fuer HTMLInputElement:

        interface HTMLInputElement : HTMLElement {
          ...
          readonly attribute  DOMString       type;

        DOM Level 2 hingegen sagt an der Stelle:

        interface HTMLInputElement : HTMLElement {
          ..
          // Modified in DOM Level 2:
                   attribute  DOMString       type;

        Da ist die readonly-Eigenschaft dieses Attributs also entfallen.

        Und wenn doch, gibt es einen Workaround für den IE?

        Element neu erzeugen, und bestehendes damit ersetzen.

        MfG ChrisB