confirm sendet bei Abbrechen trotzdem
Michi
- javascript
Hallo kann mir bitte jemand auf die Sprünge helfen, was bei mir im Skript falsch ist ?
Ich habe mehrere Formulare auf der Seite die ein Select beinhalten.
Wenn ein Formular gesendet wird, und der Select dieses Formular den Wert 1 hat, soll nochmals bestätigt werden ob ich wirklich senden will.
Funktioniert bislang auch prima, wenn ich aber auf Abbrechen gehe, wird das Formular trotzdem gesendet ????
Ich kapier nicht warum. Danke für nen Tip
<script type="text/javascript">
function sure (){
var e = document.forms.length;
for (var i = 0; i < e ; i++)
if(document.forms[i].lastChild.previousSibling.value==1)
{return confirm("Sind Sie sicher?");}
}
</script>
Gruß Micha
Hi,
{return confirm("Sind Sie sicher?");}
wird der return-Wert an der aufrufenden Stelle überhaupt ausgewertet?
cu,
Andreas
Hallo Andreas
{return confirm("Sind Sie sicher?");}
wird der return-Wert an der aufrufenden Stelle überhaupt ausgewertet?
Wie kann ich denn das feststellen? :(
Tut mir leid, kenn mich nicht so gut aus, deshalb die Nachfrage
Gruß Micha
Hi,
Wie kann ich denn das feststellen? :(
Durch Angucken der aufrufenden Stelle.
Wenn Du es dort nicht selbst erkennst: zeig uns die aufrufende Stelle.
cu,
Andreas
Hello,
{return confirm("Sind Sie sicher?");}
wie sieht denn das Formular aus bzw. wer ruft diese Funktion aus. Ein return-false unterbricht das Absenden nur, wenn es auch per onsubmit den Wert weiterliefert, im Sinne von
obsubmit="return sure()"
MfG
Rouven
Hallo Rouven,
wie sieht denn das Formular aus bzw. wer ruft diese Funktion aus. Ein return-false unterbricht das Absenden nur, wenn es auch per onsubmit den Wert weiterliefert, im Sinne von
obsubmit="return sure()"
Hier das Formular:
<form method="post" onSubmit="sure();" action="intern.php">
<input name="Hausnummer" type="hidden" value="11" />
<select name="machDas" size="1">
<option value="0">Keine Aktion</option>
<option value="1">Verkauft</option>
<option value="2">Reservierung</option>
<option value="3">Reservierung aufheben</option>
<option value="4">Reservierung verlängern</option>
</select>
<button class="Button" name="execute" type="submit" >ausführen</button>
</form>
Danke und Gruß Micha
Moin
du siehst den Unterschied?
obsubmit="return sure()"
Hier das Formular:
<form method="post" onSubmit="sure();" action="intern.php">
Gruß
rfb
Hi,
function sure (){
var e = document.forms.length;
for (var i = 0; i < e ; i++)
if(document.forms[i].lastChild.previousSibling.value==1)
{return confirm("Sind Sie sicher?");}
}
Noch was: welchen return-Wert liefert Deine Funktion, wenn kein value==1 zutrifft?
cu,
Andreas
Hallo Andreas,
Noch was: welchen return-Wert liefert Deine Funktion, wenn kein value==1 zutrifft?
Die anderen Werte sind 0,2,3 und 4.
Gruß Micha
Hi,
Noch was: welchen return-Wert liefert Deine Funktion, wenn kein value==1 zutrifft?
Die anderen Werte sind 0,2,3 und 4.
Ich sehe in der Funktion kein return 0; oder return 2; oder return 3; oder return 4; oder irgendetwas, was einen derartigen returnwert liefern würde.
Lies die Frage nochmal durch. Ich habe nicht gefragt, welche Werte das value-Dings haben kann, sondern welchen return-Wert die Funktion liefert, wenn keines der value-Dinger den Wert 1 hat.
cu,
Andreas
Noch was: welchen return-Wert liefert Deine Funktion, wenn kein value==1 zutrifft?
Ich glaube(hoffe) ich hab kapiert, was Du wissen willst.
Habe das script modifiziert;
if(document.forms[i].lastChild.previousSibling.value==1)
{var ergebnis = confirm("Sind Sie sicher?");alert(ergebnis);
}
}
Wenn ich jetzt auf Ok drücke kommt True, bei Abbrechen kommt False...
War es das was Du gemeint hast?
Gruß Micha
Hello,
Noch was: welchen return-Wert liefert Deine Funktion, wenn kein value==1 zutrifft?
if(document.forms[i].lastChild.previousSibling.value==1)
{var ergebnis = confirm("Sind Sie sicher?");alert(ergebnis);
}
War es das was Du gemeint hast?
nein, offensichtlich nicht - denn das kommt ja zurück WENN der Wert 1 ist. Er wollte wissen was zurück kommt, wenn der Wert NICHT 1 ist.
MfG
Rouven
Hallo
nein, offensichtlich nicht - denn das kommt ja zurück WENN der Wert 1 ist. Er wollte wissen was zurück kommt, wenn der Wert NICHT 1 ist.
Also bei else kommt 0 raus
if(document.forms[i].lastChild.previousSibling.value==1)
{alert(document.forms[i].lastChild.previousSibling.value);}
else
{alert(document.forms[i].lastChild.previousSibling.value);}
}
Kannst Du mir sagen wo Deine Vermutung hinzielt, vielleicht finde ich ja dann den Fehler?
Danke und Gruß Micha
Hello,
if(document.forms[i].lastChild.previousSibling.value==1)
{alert(document.forms[i].lastChild.previousSibling.value);}
else
{alert(document.forms[i].lastChild.previousSibling.value);}
}
du hast den Hinweis immer noch nicht verstanden: Dein Code (im Ausgangsposting) sagt: Wenn der Wert 1 ist, dann gebe (return) den Wert des confirm-Dialogs zurück. <- Punkt. Schluss. Du sagst nirgendwo, was zurückgegeben werden soll, wenn der Wert nicht 1 ist.
Kannst Du mir sagen wo Deine Vermutung hinzielt, vielleicht finde ich ja dann den Fehler?
der Hauptfehler wurde im anderen Diskussionsfaden geklärt und bezieht sich auf die Anbringung im onsubmit. Das hier klärt lediglich die weiteren Fälle ab.
MfG
Rouven
Hallo Rouven,
manchmal steht man wirklich auf der Leitung!
Danke für Deine Ausdauer, jetzt hab ichs kapiert.
Gruß Micha
Hallo Michi,
zusätzlich zu dem, was schon geschrieben wurde:
if(document.forms[i].lastChild.previousSibling.value==1)
sei bei solchen Konstruktionen vorsichtig. Die Frage, was denn ein Knoten ist, ist leider nicht browserübergreifend einheitlich geklärt. Zeilenumbrüche oder Leerzeichen zwischen HTML-Elementen werden je nach Browser als Textknoten angesehen. So etwas, wie z.B.
<_irgendeinTag_><_irgendeinTag_><_irgendeinTag_>
liefert bei Deiner Abfrage möglicherweise etwas anderes, als
<_irgendeinTag_>
<_irgendeinTag_>
<_irgendeinTag_>
Gruß, Jürgen