return true, return false, HILFE
Sonic
- javascript
Hallo,
ich habe eine Funktion, in der ich eine zweite Funktion chkform() aufrufe:
function test() {
chkform();
document.form.submit();
}
function chkform() {
if (document.form.name.value=="") {
alert("Name eingeben!");
return false;
}
}
Wenn das Feld "Name" leer ist, soll nach dem alert nichts weiter passieren. Wie mache ich das mit return? Jetzt ist es so, dass die Form abgeschickt wird.
Danke
Hi,
function test() {
chkform();
document.form.submit();
}
da steht ja auch nichts von "beachte den Rückgabewert".
Varianten wären:
if (!chkform()) return; // verlasse test() sofort, falls chkform fehlschlägt
if (chkform())
document.form.submit(); // führe das submit aus, falls chkform() erfolgreich verlaufen ist.
MfG
Rouven
Varianten wären:
if (!chkform()) return; // verlasse test() sofort, falls chkform fehlschlägtif (chkform())
document.form.submit(); // führe das submit aus, falls chkform() erfolgreich verlaufen ist.
Beide Varianten funktionieren bei mir nicht. Was mache ich falsch?
function test() {
if (window.event.keyCode==13) {
if (chkform()) { //ohne dieser Abfrage geht es
document.form.submit();
}
}
}
ich habe eine Funktion, in der ich eine zweite Funktion chkform() aufrufe:
function test() {
chkform();
document.form.submit();
}
Warum willst du unbedingt das Formular mit JS abschicken?
Notier im onsubmit Handler die Funktion, dann kannst du auch gleich das Formular übergeben:
<form action="..." onsubmit="return test(this)">
function test(form) {
if(!chkform(form) return false;
....
}
function chkform(form) {
if (!form.name.value) {
alert("Name eingeben!");
return false;
}
return true;
}
Struppi.
Hallo,
function test() {
chkform();
document.form.submit();
}
Der Aufruf von chkform() in dieser Funktion ist nutzlos, denn Du verwirfst den Rückgabewert ja sofort.
Du mußt aber diesen Rückgabewert daraufhin prüfen, ob er FALSE oder TRUE ist und daraufhin das Formular absenden oder nicht.
Also if(chkform.......).
Abgesehen davon solltest Du dafür sorgen, daß die Funktion chkform() IMMER einen Bool'schen Wert liefert, also entweder TRUE oder FALSE, und sie vielleicht auch anders benennen: Funktionen, die einen Bool'schen Wert zurückgeben, bezeichnet man meistens nach dem Schema isValid() oder hasChildNodes() - das macht den Code lesbarer.
Ciao,
Andreas
Du mußt aber diesen Rückgabewert daraufhin prüfen, ob er FALSE oder TRUE ist und daraufhin das Formular absenden oder nicht.
Entweder schreist du oder du machst einen Fehler true/false werden in JS klein geschrieben.
Struppi.
hi,
if (document.form.name.value=="") {
Bekommst du damit keine Fehlermeldung?
(form.name enthält den Inhalt des name-Attributes des Formulars. Darunter existiert aber natürlich keine Eigenschaft value.
Bitte benenne _nie_ ein Formular_element_ mit name="name", wenn du mit Javascript darauf zugreifen willst.)
gruß,
wahsaga
if (document.form.name.value=="") {
Bekommst du damit keine Fehlermeldung?
(form.name enthält den Inhalt des name-Attributes des Formulars. Darunter existiert aber natürlich keine Eigenschaft value.
Bitte benenne _nie_ ein Formular_element_ mit name="name", wenn du mit Javascript darauf zugreifen willst.)
Bis jetzt hat es funktioniert :)
Hi,
na ja, du hast den Kommentar von Andreas noch nicht berücksichtigt: Deine Funktion kennt im Moment nur einen wirklichen Rückgabewert, nämlich false. True wird niemals explizit zurückgegeben, was JS da zurückgibt kann ich dir im Moment nicht beantworten, aber du solltest darauf achten, dass in _jedem_ Fall true oder false zurückgegeben wird.
MfG
Rouven
...sorry, das sollte eigentlich hier hin...
MfG
Rouven