christian klokkers: browserabhängige elementsteuerung

Hi!
Ich möchte gerne select-felder über JS auf einen bestimmten wert setzen. klappt mit dem ie und mozilla(firebird) auf dem pc auch prima, allerdings frag ich mich, wie ich das mit dem nn4.7 oder auf dem mac hinbekomme. das problem ist, dass ich keine möglichkeit gefunden habe,
dies variable hinzubekommen.

hier ein kleinews beispiel, wie das im ie hinhaut:
for (k=1;k <= anzahl; k++) {
  pruef_id = spalte * 10 + k;
  pruef = "id"+pruef_id;
  document.all[pruef].value = 0;
}

hier der ganze quelltext (ohne document.layers, da ich ja kein layer ansprechen will)
http://giga.de/crs/onchange.html
(hier in darf in einer spalte nie zweimal der gleiche wert ausgewählt sein)

ich hoffe, man kann das ungefähr nachvollziehen und das jemand eine idee hat.

gruß christian

  1. Hi Christian,

    Ich möchte gerne select-felder über JS auf einen bestimmten wert setzen.

    Du kannst auch document.form darauf zugreifen, z.B.

    <form name="foo">

    ... name="x" <!-- irgend ein Feld -->

    </form>

    document.foo.x = "I'm foo!";

    MfG
    Danny

    1. schon klar, allerdings wird das ganze schwieriger (und genau das ist ja auch mein problem), wenn ich mehrere felder in einer schleife ändern möchte:

      for (k=1;k <= 2; k++) {
        pruef = "id"+k;
        document.foo.pruef.value = "adsfas";  //so ungefähr müsste es vielleicht sein
      }
      ...

      <form name="foo">
      ... name="id1" <!-- irgend ein Feld -->
      ... name="id2" <!-- ein weiteres Feld -->
      </form>

      hier ist pruef ja eine variable und kein bezeichner für ein feld und somit gibts ne fehlermeldung

      1. schon klar, allerdings wird das ganze schwieriger (und genau das ist ja auch mein problem), wenn ich mehrere felder in einer schleife ändern möchte:

        for (k=1;k <= 2; k++) {
          pruef = "id"+k;
          document.foo.pruef.value = "adsfas";  //so ungefähr müsste es vielleicht sein
        }

        document.foo.elements[pruef].value = "adsfas";

        Struppi.

  2. hi,

    das problem ist, dass ich keine möglichkeit gefunden habe,
    dies variable hinzubekommen.

    pruef = "id"+pruef_id;
      document.all[pruef].value = 0;

    document.all ist microsoft-syntax.

    wenn du stattdessen

    document.forms["formularname"].elements[pruef].value

    verwendest, erhöhen sich die chancen, dass es auch in anderen browsern funktioniert.

    siehe auch http://selfhtml.teamone.de/javascript/objekte/elements.htm#allgemeines.

    gruss,
    wahsaga