Olla: Komme nicht weiter

Beitrag lesen

Hi,

»» if(document.getElementsByName('PF')[i] != '')

Was willst du denn mit dieser Abfrage bezwecken?
Ein Formularfeld wird nie einem Leerstring entsprechen.

Hallo Chris,

auch nicht bei allerersten Aufruf? Dann ist doch die Textarea leer?

Übergebe beim Aufruf deiner Funktion die Referenz auf das Objekt, auf dem diese aufgerufen wird, als Parameter - das geht in diesem Kontext ganz einfach mittels this

Was genau übergebe ich mit "this"? Ich hab gesucht und geforscht, bin aber so unbeholfen in JS, dass ich nur herausgefunden habe, dass ich eine Referenz übergebe. Und das hast Du schon in Deinem Post geschrieben. Ein Alert bringt nur "Object" als Ergebnis. Und ich weiß nichts damit anzufangen.

Und in deiner Funktion (deren Kopf du natürlich so erweiterst, dass sie diesen Parameter auch entgegen nimmt)

Hab ich gemacht. Weiß es aber nicht auszuwerten :-(

»»vergleichst du dann die jeweils aktuelle Textarea (also document.getElementsByName('PF')[SchleifenZaehler]) mit der, deren Referenz als Parameter übergeben wurde - und nur, wenn die nicht gleich sind, dann setzt du das disabled-Attribut auf true.

Dennoch war Dein Post absolut zielführend. Ich hab es im Prinzip genau so gemacht, wie Du vorschlägst. Nur etwas anders umgesetzt.

  
 <BODY>  
  <script language="javascript" type="text/javascript">  
 <!--  
function disable_textareas(p1) {  
for (var i = 0; i < document.getElementsByName('PF').length; i++)  
{  
if (i!=p1) {  
document.getElementsByName('PF')[i].disabled = true;  
}  
 }  
 }  
  </script>  
  
<textarea name="PF" onchange="disable_textareas('0')" ></textarea><BR>  
<textarea name="PF" onchange="disable_textareas('1')" ></textarea><BR>  
<textarea name="PF" onchange="disable_textareas('2')" ></textarea><BR>  
<textarea name="PF" onchange="disable_textareas('3')" ></textarea><BR>  
<textarea name="PF" onchange="disable_textareas('4')" ></textarea>  
 </BODY>  
</HTML>  

Da die Seite eh über php generiert wird, ist es unproblematisch, anstelle von "this" gleich die Indexnummer zu übergeben.

Trotzdem hätte ich gerne mal die Originallösung gehabt. Kannst Du mir sie mal geben, damit ich weiterlerne? Ist ja keine Faulheit oder so. Denn meine Lösung funktioniert ja dank Deiner Hilfe perfekt.

Danke und Grüße, Olla