regenfeld: Das Objekt, das keines war...

Beitrag lesen

Re: Grüssi,

Vielleicht liegts ja daran, dass du deine Zeilen ausgerechnet vor dem schliessenden " deiner Attributwerte umbrichst ;-)

<snip>
" onClick="InFeldEinfuegen(this)"></td></tr><tr><td align="right"> <input type="button" name="Agoura
" value="Agoura
" onClick="InFeldEinfuegen(this)"></td></tr><tr><td align="right"> <input type="button" name="Albert
" value="Albert
<snap>

Äh, nein. Das passiert durch das PHP, keine Ahnung wie ich das ändern kann...

Wie gibst du denn deine Daten aus in PHP? mit "echo"? Es kann schon sein, dass wenn ein '\n' im Namen ist, Javascript diesen Namen dann nicht korrekt erkennt, und so deine Fehler entstehen. Versuch mal die Zeile als ganzes auszugeben:

echo '<input type="button" name="Agoura" value="Agoura" onClick="InFeldEinfuegen(this)">\n';

Abgesehen davon funktionierts bei mir im IE 6 + Mozilla! NS 4.7 und Opera 5 steigen aus :-(

Ich benutze auch den MSIE 6... komisch. Vielleicht hast Du die Funktion garnicht ausgeführt? Hast Du ein paar Namen durch einen Klick auf einen Button eingefügt und dann durch einen Klick auf Test hat sich nichts verändert?? Eigentlich müsste er, wenn man einen Namen von dem Text-Feld wieder löscht, den Button mit diesem Namen nach einem Klick auf Test wieder freigeben...

Blöde Frage: Was spricht dagegen, deine Buttons alle gleich zu benennen, und den Namen nur als Wert zu nehmen - anstatt als name und wert gleichermassen?

<input type="button" name="arzt4" value="Busley" onClick="InFeldEinfuegen(this)">
<input type="button" name="arzt5" value="Detsch" onClick="InFeldEinfuegen(this)">

...

function ButtonAktivieren() {
  for(i=1; i<37; i++) {
     ArztnameETP = parent.Formular.document.forms["ETPFormular"].elements["arzt" + i].value;
    if(ArztnameETP) {
       for(i=1; i < 37; i++) {
          NameButton = document.forms[0].elements['arzt'+i];
          alert(NameButton.value);
          if(ArztnameETP == NameButton.value) {
             NameButton.disabled = true;
          } else {
             NameButton.disabled = false;
          }
       }
    }
  }
}

Wenn ich noch was anmeckern darf: Es wär glaub ich einfacher wenn du in der Funktion InsFeldEinfügen() den Namen des zuletzt geänderten Feldes in einer Globalen variable speicherst: LetztesGeandertesFeld = "arzt6" beispielsweise. wenn deine Buttons nun (namentlich) gleich aufgebaut sind wie deine Textfelder vereinfacht sich deine Funktion auf:

function ButtonAktivieren() {
   NameFeld   = parent.Formular.document.forms["ETPFormular"].elements[LetztesGeaendertesFeld];
   NameButton = document.forms[0].elements[LetztesGeaendertesFeld];
   if (NameFeld.value == NameButton.value)
      NameButton.disabled = true;
   } else {
      NameButton.disabled = false;
  }
}

hth?
  graphity

hoffe tas hilft - auf englisch ;-)
  regenfeld