Problem bei der Forumalarübergabe! Zeitproblem!

Hannibal

Erfahrenes Mitglied
Guten Morgen. Ich rechne mit einem JavaScript ein bestimmtes Datum aus wenn auf einen Button geklickt wird, doch zugleich soll dieser Button auch gleich ein Formular abschicken.

Jetz habe ich ein Zeitproblem, der Button schickt mir das Formular ab, bevor Werte berechnet sind.

Hier mein Code

HTML:
<html>
<head>
<title>Datum ermitteln</title>

<script type="text/javascript">
<!--
function CalcDatum(Start, Ende) {

// Datum festlegen
var startDatum = new Date(Start);

// Datum zu welchem gezählt werden soll festlegen
var event = new Date(Ende);

var seconds = (event- startDatum) / 1000;
var minutes = seconds / 60;
var hours = minutes / 60;
var days = hours / 24;
days = Math.round(days);
return days;
}

function SchreibeDatum(writeStart, writeEnde) {
var Wert = CalcDatum(writeStart, writeEnde);
document.DateForm.Ergebnisfeld.value = Wert;
}
//-->
</script>
</head>


<body>
<form method="post" name="DateForm" action="datum_zeigen.htm">

<pre>
StartDatum: <input type="text" name="StartDate" value="Oct 20 2004 00:00:00">
EndDatum: <input type="text" name="EndDate" value="Oct 25 2004 00:00:00"></pre>
<p>Tagesdifferenz berechnen!</p>
<input type="submit" value="Differenz ermitteln"
onClick="SchreibeDatum(document.DateForm.StartDate.value,document.DateForm.EndDate.value)">
<pre>
Ergebnis: <input type="text" name="Ergebnisfeld"></pre>
</form>
</body>
</html>
 
Hi,

hast Du schon versucht, die Funktion im onsubmit-Event des Formulars aufzurufen?
Code:
<form method="post" name="DateForm" action="datum_zeigen.htm" onsubmit="return SchreibeDatum(document.DateForm.StartDate.value,document.DateForm.EndDate.value);">
Dazu müsstest Du am Ende Deiner Funktion true zurückliefern.
Code:
function SchreibeDatum(writeStart, writeEnde) {
    var Wert = CalcDatum(writeStart, writeEnde);
    document.DateForm.Ergebnisfeld.value = Wert;

    return true;
}
Wenn das ebenfalls keine Besserung bringt, könntest Du eine Schleife einbauen, die solange
durchlaufen wird, bis der Wert im Feld gesetzt ist.
Code:
function SchreibeDatum(writeStart, writeEnde) {
    var Wert = CalcDatum(writeStart, writeEnde);
    document.DateForm.Ergebnisfeld.value = Wert;

    while(document.DateForm.Ergebnisfeld.value == "") {
        ;
    }

    return true;
}
Vielleicht hilft Dir das ja weiter.

Ciao
Quaese
 
Ou Super Danke, jetz kommt zwar wieder zum Zuge dass ich ein absoluter bin, aber ich werde versuchen dies so gut wie möglich einzubauen :D
 

Neue Beiträge

Zurück