"We are back" « oc.at

javascript, formularüberprüfung

unki 12.02.2004 - 12:42 603 4
Posts

unki

Little Overclocker
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
Ausgehend von diesem Beispiel:
js:
Code: PHP
function pruefen(){
	if(!document.register.berechtigung0.checked && !document.register.berechtigung1.checked && !document.register.berechtigung2.checked){
		alert("Sie haben keine Berechtigung vergeben!");
		return false;
}
html:
Code: PHP
<form action = "--" method = "POST" name = "register" onSubmit ="return pruefen();">
<input type = "checkbox" name = "berechtigung0" value = "3">
<input type = "checkbox" name = "berechtigung1" value = "2">
<input type = "checkbox" name = "berechtigung2" value = "1">
So wie ich das hier habe funkt das ding ohne Probleme.
Jetzt benötige ich aber im "name" attribut ein array:
Code: PHP
<input type = "checkbox" name = "berechtigung[0]" value = "3">
<input type = "checkbox" name = "berechtigung[1]" value = "2">
<input type = "checkbox" name = "berechtigung[2]" value = "1">
somit funkt aber die Abfrage: if(!document.register.berechtigung[0] && ........) nimma!

Hat jemand vielleicht eine Idee???
Bearbeitet von unki am 12.02.2004, 15:26

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
in die inputs ein zusätzliches id= und dann ein getElementById() oder du versuchst, ob getElementsByName() mit [] klarkommt.

unki

Little Overclocker
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
meinst du etwa so:
<input type = "checkbox" name = "berechtigung[0]" id = "0" value = "3">

und:
if(!document.register.berechtigung.getElementById(0).checked && ...

wahrscheinlich nicht, denn so funkts leider nicht :-(

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4479
IDs sind in diesem Fall eindeutige Identifier, die aber nicht mit einer Zahl beginnen duerfen. Gueltige Beispiele sind z.B.

<input id="berechtigung-0" ...
<input id="Berechtigung0" ...

und dann in Javascruipt
if (!document.getElementById('Berechtigung0').checked) {
// then
}

D.h., getElementById ist eine Funktion des Documents, es arbeitet immer auf das gesammte Dokument. Darum duerfen gleiche IDs auch nicht zwei mal in einem Dokument vergeben werden. Du musst also nicht wissen wie z.B. dein forumular heisst; dein input-Element hat eine eindeutige ID, damit kannst du sie fuer das Dokument global von ueberall aus mit document.getElementById referenzieren.

Die anderen erwaehnten Methoden wie getElementsByName oder getElementsByTagName funktionieren aehnlich, mehr unter http://www.w3.org/DOM/DOMTR

unki

Little Overclocker
Avatar
Registered: Jul 2003
Location: vienna
Posts: 88
fänx, das haut hin!!!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz