63130
Goto Top

AGB Haken schaltet Button frei

Hallo,
wie kann man denn die "AGB"-Haken machen, sodass der Senden-Button in einem Formular erst dann frei geschaltet wird, wenn der Haken in einer Checkbox gesetzt wurde?

Könnt ihr mir da helfen? Ich hab absolut keine Ahnung von JavaScript.

Danke schonmal face-smile

Max

Content-ID: 103609

Url: https://administrator.de/contentid/103609

Ausgedruckt am: 05.11.2024 um 10:11 Uhr

dog
dog 09.12.2008 um 09:22:43 Uhr
Goto Top
Prinizpiell müsstest du dann der onChange-Aktion der Checkbox eine Javascript-Funktion zuweisen, die den Status der Checkbox prüft und danach den Button freischaltet oder sperrt.

function changeButtonState() {
document.getElementById("button-ID").disabled = !(document.getElementById("checkbox-ID").checked);  
}

Generell würde ich aber davon abraten, dass in Javascript zu machen, weil es eben immer noch Browser gibt, die Javascript deaktiviert haben. Eine serverseitige Prüfung ob das Formular gesendet wurde ist also besser.

Grüße

Max
63130
63130 10.12.2008 um 08:12:55 Uhr
Goto Top
Nochmal kurze zwischenfrage: Wie hänge ich das in den Quelltext? Also angenommen ich hab - ganz simple - nur checkbox und button.

<code tyype="php">echo "<input type=\"checkbox\" name=\"richtlinien\"><input type=\"submit\" name=\"senden\" value=\"Absenden\">";

Ich hab einfach von JavaScript keine Ahnung face-confused
dog
dog 10.12.2008 um 19:00:57 Uhr
Goto Top
Ausgehend von:

<input type="checkbox" id="chk1" ... onClick="checkBoxState();" />  
<input type="submit" id="sbmt" ... />  

Bräuchtest du eine Javascript-Funktion:

function checkBoxState() {
var boxState = document.getElementById("chk1");  
var sbmtButton = document.getElementById("sbmt");  
sbmtButton.disabled = !boxState.checked;
}

(Nicht getestet)

Grüße

Max
63130
63130 11.12.2008 um 08:23:02 Uhr
Goto Top
Also mein Quelltext sieht jetzt so aus aber es funktioniert nicht:

Klappt doch (Blöder cache)

echo "  
		<script type=\"text/javascript\">  
		function checkBoxState() {
			var boxState = document.getElementById(\"chk1\");  
			var sbmtButton = document.getElementById(\"sbmt\");  
			sbmtButton.disabled = !boxState.checked;
		}
		</script>

		
		<form action=\"speichern.php?id=".$_GET[id]."\" method=\"post\">  
		<br>
		<input type=\"checkbox\" id=\"chk1\" name=\"chk1\" onClick=\"checkBoxState();\"> Ich habe die Richtlinien gelesen  
		<br><br><input type=\"submit\" id=\"sbmt\" name=\"sbmt\" value=\"absenden\"></form>  
";  
oliPro
oliPro 26.10.2009 um 06:40:48 Uhr
Goto Top
Ähm ... jetzt sitze ich gerade vor dem gleichen Problem.
Bei mir funktioniert Dein Script nicht face-sad

Hab nicht sonderlich viel Ahnung von Javascript, aber müsste nicht irgendwo (z.B. body-Tag) erstmal definiert werden, dass der Button beim laden disabled ist?

Wenn ich aber die Möglichkeit nicht habe, dies im body zu tun - wie kann ich das dann lösen?
oliPro
oliPro 30.11.2009 um 06:58:55 Uhr
Goto Top
Nur zur Vervollständigung: So hat es bei mir ohne "onload" funktioniert ...

<html>
	<head>
		<title>ElZetto</title>
		<script type='text/javascript'>  
			function check()
			{
				var chBox1 = document.getElementById('chBox1');  
				var chBox2 = document.getElementById('chBox2');  
				var chBox3 = document.getElementById('chBox3');  
				var button = document.getElementById('button');  
				if( chBox3.checked == true 
					&&  chBox2.checked == true
						&& chBox1.checked == true )
				{
					button.disabled = false;
				}
				else
				{
					button.disabled = 'disabled';  
				}
			}
		</script>
	</head>
	<body>
		<input type='checkbox' id='chBox1' onclick='check();' /> Elzet<br />  
		<input type='checkbox' id='chBox2' onclick='check();' /> LZ<br />  
		<input type='checkbox' id='chBox3' onclick='check();' /> PQ<br />  
		<input type='button' id='button' disabled='disabled' value='Oh noez!' onclick='window.location.href="http://www.google.com"' />  
	</body>
</html>