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-Key: 103609

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

Printed on: April 25, 2024 at 16:04 o'clock

Member: dog
dog Dec 09, 2008 at 08:22:43 (UTC)
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
Mitglied: 63130
63130 Dec 10, 2008 at 07:12:55 (UTC)
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
Member: dog
dog Dec 10, 2008 at 18:00:57 (UTC)
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
Mitglied: 63130
63130 Dec 11, 2008 at 07:23:02 (UTC)
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>  
";  
Member: oliPro
oliPro Oct 26, 2009 at 05:40:48 (UTC)
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?
Member: oliPro
oliPro Nov 30, 2009 at 05:58:55 (UTC)
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>