Autor |
Nachricht |
Ascend
Threadersteller
Dabei seit: 04.09.2008
Ort: Bayern
Alter: 55
Geschlecht:
|
Verfasst Do 16.04.2009 09:38
Titel 2 funktionen onSubmit mit return |
|
|
es geht um ein formular.
ich habe dazu 2x javascript welche abgefragt werden.
das erste überprüft ob alles korrekt eingegeben wurde und das 2. überprüft eine kleine rechenaufgabe ob die korrekt gelöst wurde.
das habe ich jetzt versucht so zu lösen:
Code: | onSubmit="checkit(this); return Kontrolle01();" |
das funktioniert soweit. nur wenn der user zuerst die aufgabe löst und auf senden klickt kommt zwar die meldung das der name usw nicht korrekt eingegeben wurde, sendet aber trotzdem.
das hab ich jetzt versucht so zu lösen:
Code: | onSubmit="return (checkit(this) && return Kontrolle01());" |
da macht er gar keine überprüfung
und ich habe noch versucht
Code: | onSubmit="return (checkit(this) && Kontrolle01());" |
hier wiederum kontrolliert er nur ob die angaben richtig sind, aber nicht die zu lösende aufgabe
kann mir einer nen tipp geben was falsch ist?
wie ich 2 funktionen in einem onSubmit einfüge?
|
|
|
|
|
therapiekind
Dabei seit: 14.03.2006
Ort: In deinem Kopf
Alter: -
Geschlecht: -
|
Verfasst So 19.04.2009 02:27
Titel Re: 2 funktionen onSubmit mit return |
|
|
Hiho!
Code: | onSubmit="checkit(this); return Kontrolle01();" |
Wenn du inline-Eventhandler (onsubmit-Attribut) benutzt, muss das return auch in diesem Handler stehen. Die Ergebnisse der Funktionen werden sonst nicht berücksichtigt.
Code: | onSubmit="return (checkit(this) && return Kontrolle01());" |
Hier benutzt du das return (allerdings ist das zweite return innerhalb der Klammern verwirrend). Aber du verwendest Ampersands (&&) in einem Elementattribut. Das geht nicht bzw. sollte vermieden werden, da HTML-Entitäten durch das Ampersand gekennzeichnet sind (Sonderzeichen und so; € z.B.). Einige Browser sind da nachsichtig, aber der IE z.B. gibt 'nen Fehler aus.
Code: | onSubmit="return (checkit(this) && Kontrolle01());" |
Hier ist im Grunde alles ok, wären da nicht die Ampersands. Funktioniert sogar im Firefox, glaube ich. Der IE aber, wie oben geschrieben, spielt nicht mit.
Am besten also eine Wrapperfunktion benutzen:
Code: | function check_all()
{
return (checkit(this) && Kontrolle01());
} |
Code: | onSubmit="return check_all();" |
Eine elegantere Möglichkeit wäre noch:
Code: | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>test</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="de-DE" />
</head>
<body>
<form id="the-form"
action="bla.htm"
method="post"
enctype="application/x-www-form-urlencoded">
<div>
<input type="text" name="username" id="username" />
<input type="submit" />
</div>
</form>
<script type="text/javascript">
var the_form = document.getElementById('the-form');
the_form.onsubmit = check_it;
function check_it(event)
{
var evt = event || window.event;
alert(evt);
if (evt.preventDefault)
{
evt.preventDefault();
}
else
{
evt.returnValue = false;
}
}
</script>
</body>
</html>
|
Infos dazu findest du hier: http://forum.mootools.net/viewtopic.php?id=6372
Und quirksmode hat auch noch viele, nützliche Sachen rund um Events.
Hoffe, das löst dein Problem!
|
|
|
|
|
Anzeige
|
|
|
Ascend
Threadersteller
Dabei seit: 04.09.2008
Ort: Bayern
Alter: 55
Geschlecht:
|
Verfasst Do 30.04.2009 11:34
Titel
|
|
|
danke dir dafür.
sehr erklärend beschrieben
|
|
|
|
|
|
|
|
Ähnliche Themen |
Formular wartebild bei onsubmit geht nicht wegen validierung
XML - Return im Code
PHP->return statt klicken im Formular
[PHP] function return, fehler [solved]
[php] return wird nicht ausgeführt
Erledigt! [PHP]Return stoppt Script
|
|