Hallo,
<table width="50%">
<form name="voting">
Du kannst kein form in ein table schachtelt, das form muss um das table herum (am Ende machst du das auch).
<script language="JavaScript">
Das sollte besser <script type="text/javascript"> lauten.
for (var i=0;i<spieler.length;i++){
...
document.write("<select name='Playerauswahl' id='Playerauswahl'>");
Du erzeugst hier mehrere select-Element mit derselben ID. das geht natürlich nicht. Eigentlich brauchst du diese ID auch nicht.
var playervalue = voting.Playerauswahl.text;
Der Zugriff auf das Formular sollte standardgemäß mit document.forms.voting
oder document.getElementById('voting'
) erfolgen. Deine Ansprechweise über eine global Eigenschaft (einfach voting
) ist eine IE-Erfindung und wird von den Browsern nur noch geduldet.
document.write(" Auswahl : " + playervalue) + "<br>";
In Langschreibweise greifst du auf
document.forms.voting.elements.Playerauswahl
zu. Das gibt dir nicht direkt ein select-Element, sondern einen Array mit allen select-Elementen, die name="Playerauswahl" besitzen. Davon hast du ja drei. Diesen Array kannst du durchlaufen:
var selects = document.forms.voting.Playerauswahl;
for (var i = 0, l = selects.length; i < l; i++) {
alert('Spieler: ' + spieler[i] + ', Wertung: ' + selects[i].value);
}
selects[i] gibt dir also jeweils ein select-Element zurück. Den internen Wert des Feldes kannst du mit http://de.selfhtml.org/javascript/objekte/elements.htm#value@title=value auslesen.
Wenn du hingegen den angezeigten Text willst (also »15 Punkte« anstatt nur »15«), dann müsstest du über http://de.selfhtml.org/javascript/objekte/options.htm@title=options gehen.
var selects = document.forms.voting.Playerauswahl;
for (var i = 0, l = selects.length; i < l; i++) {
var select = selects[i];
var selectWert = select.options[select.[ref:self812;javascript/objekte/options.htm#selected_index@title=selectedIndex]].[ref:self812;javascript/objekte/options.htm#text@title=text];
alert('Spieler: ' + spieler[i] + ', Wertung: ' + selectWert);
}
Mathias