Sie sind nicht angemeldet.

Tippspiel

Paule bei Facebook & Twitter

Google-Anzeigen

Empfehlung

Wir verlosen 10 x Norman Security Suite 11 :jaaaa:
:cheer: :cheer: :cheer: :cheer:

Lieber Besucher, herzlich willkommen bei: Paules-PC-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

fingon

Weiß worum´s geht

  • »fingon« ist der Autor dieses Themas

Beiträge: 246

Registriert: 23. Februar 2006

  • Nachricht senden

1

Dienstag, 12. Januar 2010, 11:36

JavaScript: Formular nur bei aktivierter Checkbox senden

Ich möchte, dass ein Formular nur verschickt wird, wenn eine Checkbox aktiviert ist.

Folgendes habe ich bisher:

Die Funktion:

Quellcode

1
2
3
4
5
6
7
8
<script language="javascript">
  <!--
  function ValidateFields() {
  if (document.formular.dieCheckbox.checked);
  else alert("Checkbox nicht aktiviert");
  }
  // -->
</script>


Im HTML-Formular:

Quellcode

1
2
3
4
<form...>
...
<input type="checkbox" name="dieCheckbox" value="gelesen">Checkbox
<input type=submit value="Senden" onclick="ValidateFields();">


Wenn nun die Checkbox nicht aktiviert ist und auf Senden geklickt wird, kommt auch die Meldung "Checkbox aktivieren!", aber das Formular wird trozudem abgeschickt. Wie kann ich das verhindern?

Danke :)


Unregistriert

unregistriert

2

Mittwoch, 13. Januar 2010, 19:56

Meine Javascript-Kenntnisse sind ziemlich schlecht, aber vlt hilft dir das: Prevent the Default Action for an Event
Da würde ich mir ganz unten die Funktion stopEvent(e) rauskopieren und dann bei dir in etwa so einbauen (Code ist ungetestet):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script language="javascript">
  <!--
  function ValidateFields(e) {
  if (document.formular.dieCheckbox.checked);
  else 
    {
        alert("Checkbox nicht aktiviert");
        stopEvent(e);
     }
  }
  // -->

function stopEvent(e) {
	if(!e) var e = window.event;
	
	//e.cancelBubble is supported by IE - this will kill the bubbling process.
	e.cancelBubble = true;
	e.returnValue = false;

	//e.stopPropagation works only in Firefox.
	if (e.stopPropagation) {
		e.stopPropagation();
		e.preventDefault();
	}
	return false;
}
</script>

fingon

Weiß worum´s geht

  • »fingon« ist der Autor dieses Themas

Beiträge: 246

Registriert: 23. Februar 2006

  • Nachricht senden

3

Donnerstag, 14. Januar 2010, 11:06

Hab das Problem mittlerweile selbst gelöst. Musste in meiner Funktion nur einen Boolean zurückgeben.

Unregistriert

unregistriert

4

Dienstag, 15. März 2011, 20:38

Bitte auch Lösung angeben

Wäre schön wenn Du für andere dann auch die genaue Lösung angeben könntest.

Habe das gleiche Problem und bin jetzt leider genauso schlau wie vorher, wenn Du die Lösung nicht angibst.

Peter

kurtextrem

Erfolgreich angemeldet

Beiträge: 24

Registriert: 1. Juni 2011

Wohnort: München

  • Nachricht senden

5

Mittwoch, 1. Juni 2011, 16:57

Hallo,
@Gast: Einfach

Quellcode

1
2
3
4
5
<form onsubmit="return validateFields();">
...
<label><input type="checkbox" name="dieCheckbox" value="gelesen">Checkbox</label>
<button>Senden</button>
...

und Javascript dazu:

Quellcode

1
2
3
4
5
6
<script>
  function validateFields() {
  if (document.formular.dieCheckbox.checked) return true;
  else{ alert("Checkbox nicht aktiviert"); return false; }
  }
</script>


Ich hoffe es geht!

Liebe Grüße,
Kurt

Zurzeit ist neben Ihnen 1 Benutzer in diesem Thema unterwegs:

1 Besucher

Thema bewerten