Hallo,
Du hast die Konventionen für Bezeichnernamen verletzt.
Hat er nicht, es geht ja nicht um Variablen- oder Objektnamen. name-Attributwerte sind vom Typ CDATA, also kann man name="x-y-z" durchaus verwenden, man muss das nur korrekt "verpacken":
...
<body onload="alert(document.forms[0].elements['x-y-z'].value)">
<form action="">
<input type="hidden" name="x-y-z" value="irgendwas">
</form>
</body>
...
Empfehlenswert ist das aber eher nicht, weil unklar ist, was Server-seitige Sprachen mit solchen Parametern (v)erbrechen. Ausnahme: name="xyz[]" fuer die Auswertung von mehreren option-Eintragen mit PHP.
MfG, Thomas