Mario: IE aktualisiert Formular nicht

Hallo,

folgende Problemstellung:

<input type="radio" name="Typ" value="both" onchange="javascript:return reset_buttons();" checked/>  
Grafik und Text&nbsp;  
<input type="radio" name="Typ" value="text" onchange="javascript:return reset_buttons();"/>  
Nur Text&nbsp;  
<input type="radio" name="Typ" value="grafik" onchange="javascript:return reset_buttons();"/>  
Nur Grafik&nbsp;  
  
<input type="checkbox" name="Preis" value="ja">  
<input type="checkbox" name="Artikelbeschreibung" value="ja">  
<input type="checkbox" name="Suchbox" value="ja">  

  
function reset_buttons () {  
  document.formcreate.Preis.checked = false;  
  document.formcreate.Preis.disabled = false;  
  document.formcreate.Artikelbeschreibung.checked = false;  
  document.formcreate.Artikelbeschreibung.disabled = false;  
  document.formcreate.Suchbox.checked = false;  
  document.formcreate.Suchbox.disabled = false;  
  for (var i = 0; i < document.formcreate.Typ.length; i++) {  
   if (document.formcreate.Typ[i].checked)  { typ =      document.formcreate.Typ[i].value; }  
  }  
  if (typ == "text") {  
    eval("document.formcreate.Artikelbeschreibung.checked = true");  
    eval("document.formcreate.Artikelbeschreibung.disabled = true");  
  } else if (typ == "grafik") {  
    eval("document.formcreate.Artikelbeschreibung.checked = false;");  
    eval("document.formcreate.Artikelbeschreibung.disabled = true;");  
    eval("document.formcreate.Preis.checked = false;");  
    eval("document.formcreate.Preis.disabled = true;");  
    eval("document.formcreate.Suchbox.checked = false;");  
    eval("document.formcreate.Suchbox.disabled = true;");  
   }  
}  

Wenn ich oben in dem Formular einen Radio-Button auswähle, soll einfach unten im Formular das dementsprechende Feld deaktiviert oder aktiviert werden, bzw eine Auswahl statt finden. Das funktioniert ja auch, aber erst nachdem ich in das  Formular geklickt habe. Scrolle ich nur nach unten, ist die Auswahl noch nicht geschehen. Beim Mozilla funzt es! Ich bin echt verzweifelt, hänge schon Tage dran...

Vielen Dank im Voraus für Eure Hilfe.

Liebe Grüße
Mario

  1. hi,

    Wenn ich oben in dem Formular einen Radio-Button auswähle, soll einfach unten im Formular das dementsprechende Feld deaktiviert oder aktiviert werden, bzw eine Auswahl statt finden. Das funktioniert ja auch, aber erst nachdem ich in das  Formular geklickt habe. Scrolle ich nur nach unten, ist die Auswahl noch nicht geschehen.

    onChange feuert dann, wenn das Element den Fokus verliert.

    Wähle einen geeigneteren Event, wie bspw. onClick.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Da muss ich Dir mal einen großen Dank aussprechen. Sollten wir uns mal sehen, gebe ich ein Bier aus.

      Gruss
      Mario

  2. folgende Problemstellung:

    [code lang=html]<input type="radio" name="Typ" value="both" onchange="javascript:return reset_buttons();" checked/>
    Grafik und Text&nbsp;
    <input type="radio" name="Typ" value="text" onchange="javascript:return reset_buttons();"/>
    Nur Text&nbsp;
    <input type="radio" name="Typ" value="grafik" onchange="javascript:return reset_buttons();"/>

    Erstmal kannst du das völlig überflüssige Label 'javascript:' hier rausschmeissen. Dann musst du, wie schon erwähnt, einen anderen Handler verwenden.
    Und du kannst hier auch die Referenz auf dein Formular als Parameter übergeben, wenn die Radiobuttons in dem gleichen Formular stehen.

    <input type="radio" name="Typ" value="grafik" onclick="reset_buttons(this.form);" />

    function reset_buttons () {
      document.formcreate.Preis.checked = false;

    ...
    und dann hier:

    function reset_buttons (form) {
    form.Preis.checked = false;

    eval("document.formcreate.Artikelbeschreibung.checked = true");

    wozu das eval?
    eval macht dein Skript langsam, fehleranfällig, läßt dich schwerer die Fehler finden und es ist überflüssig.

    Struppi.

    --
    Javascript ist toll (Perl auch!)