Übergabe von 2 Werten über OnKlick Button
SchmaiDaiChai
- javascript
0 wahsaga0 SchmaiDaiChai0 wahsaga0 SchmaiDaiChai0 wahsaga0 SchmaiDaiChai0 wahsaga
Hallo,
ist es möglich über einen OnKlick button 2 Werte an 2 verschiedene Funktionen zu übergeben.
Bsp.:
Ich hab 2 Felder, in das eine Feld wird die Stundenzahl eingegeben, in das zweite Feld wird die Minutenzahl eingeben.
Das eine Feld soll nun den einegegebenen Wert an die Funktion Stunden übergeben und das zweite Feld soll den Wert an Funktion Minuten übergeben.
Das alles mit aber nur einem klick auf ein Button.
Ist das möglich? Wenn ich es probiere kommt bei meinem Ergebnisfeld immer "NaN" raus, dass wie ich über SelfHtml rausbekommen habe eine undefinierten Zahl normalerweise nur zugewiesen wird.
Gruß Schmaid
hi,
ist es möglich über einen OnKlick button 2 Werte an 2 verschiedene Funktionen zu übergeben.
onClick="funktion1('blah');funktion2('blubb');"
gruss,
wahsaga
Hallo wahsaga,
also es klappt jetzt schon mal so weit, dass ich alles eingeben kann, nur wenn er mir die Zeit berechnen soll rechnet er nur die Stunden, also es wird nur mit den Werten vom ersten Eingabefeld gerechnet. Für die Minuten habe ich das gleiche erstellte nur mit anderen Variablen und Funktionsnamen, nur wird das nicht ausgegeben in dem gleichen Feld. Ich könnte höchstens probieren erstmal zu sehen ob es in einem seperaten Feld angezeigt wird.
Wenn ja kann ich dann die beiden Funktionsergebnisse addieren und mir dann ausgeben lassen. Besser wäre es nätürlich wenn er auf einmal gleich alles ausgeben könnte.
Gruß Schmaid
hi,
ist es möglich über einen OnKlick button 2 Werte an 2 verschiedene Funktionen zu übergeben.
onClick="funktion1('blah');funktion2('blubb');"
gruss,
wahsaga
hi,
also es klappt jetzt schon mal so weit, dass ich alles eingeben kann, nur wenn er mir die Zeit berechnen soll rechnet er nur die Stunden, also es wird nur mit den Werten vom ersten Eingabefeld gerechnet.
ich kenne deine funktionen nicht, kann daher auch nicht sagen, was da falsch läuft. (z.b. ein rückgabe mittels return, die den aufruf der zweiten funktion auf die von mir vorgeschlagene weise verhindert, ...)
Für die Minuten habe ich das gleiche erstellte nur mit anderen Variablen und Funktionsnamen, nur wird das nicht ausgegeben in dem gleichen Feld.
warum hast du denn überhaupt zwei funktionen für stunden und minuten - idR. gehören diese werte doch zusammen, sollten sich also auch zusammen verarbeiten lassen.
aber ohne eine genauere beschreibung, was du eigentlich vorhast, kann man auch nichts genaueres dazu sagen ...
gruss,
wahsaga
Hallo wahsaga,
ich will einen Rechner bauen, der einem die exakte zeit gibt, wann man wieder gehen, kann.
Gebe ich also 7 Uhr ein gibt er mir aus, dass ich um 15.20 Uhr gehen kann.
Ich will in ein Feld die Stunden eingeben in das 2. Feld die Minuten. Da ich bei Minuten noch das Problem habe dass wenn es 60 minuten sind eine Stunde addiert werden soll, aber dass kommt später.
Bis jetzt sieht mein Script eben so aus:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Gehzeit Rechner ;-)</title>
<script type="text/javascript">
<!--
function ZeitRechnenStd(anfZeitStd) {
var kommenStd = anfZeitStd;
var stunden = 8;
var endZeitStd = 1*(kommenStd) + 1*(stunden);
return endZeitStd;
}
function ZeitRechnenMin(anfZeitMin) {
var kommenMin = anfZeitMin;
var minuten = 20;
var endZeitMin = 1*(kommenMin) + 1*(minuten);
return endZeitMin;
}
// Wert an Funktion ZeitRechnenMin übergeben und nach Berechnung ausgeben
function ZeitEingambeMin (ZeitReMin) {
var zeitAusgabeMin = ZeitRechnenMin (ZeitReMin);
document.StartZeitEingabe.EndZeitFeld.value = zeitAusgabeMin;
}
// Wert an Funktion ZeitRechnenStd übergeben und nach Berechnung ausgeben
function ZeitEingabeStd (ZeitReStd) {
var zeitAusgabeStd = ZeitRechnenStd(ZeitReStd);
document.StartZeitEingabe.EndZeitFeld.value = zeitAusgabeStd;
}
//-->
</script>
</head>
<body>
<form name="StartZeitEingabe" action="">
<pre>
Anfangs Uhrzeit
<p>Stunden: <input type="text" name="ZeitEingabe1" /></p>
<p>Minuten: <input type="text" name="ZeitEingabe2" /></p>
</pre>
<input type="button" value="Endzeit Ausrechnen"
onClick="ZeitEingabeStd(document.StartZeitEingabe.ZeitEingabe1.value); ZeitEingabeMin(document.StartZeitEingabe.ZeitEingabe2.value);"/>
<!-- onClick="XY(document.StartZeitEingabe.ZeitEingabe.value)"/> //-->
<pre>
Zeit zum Gehen: <input type="text" name="EndZeitFeld" />
</pre>
</form>
</body>
</html>
hi,
ich will einen Rechner bauen, der einem die exakte zeit gibt, wann man wieder gehen, kann.
Gebe ich also 7 Uhr ein gibt er mir aus, dass ich um 15.20 Uhr gehen kann.
dann würde ich das aber doch in _einer_ funktion abhandeln ...
startzeit = startstunden * 60 + startminuten
dauer = dauerstunden * 60 + dauerminuten
ende = startzeit + dauer
endestunden = Math.floor(ende/60)
endeminuten = (ende/60 - endestunden) * 60
eventuell ist dann nochmals abschliessend ein runden des minuten-ergebnisses auf einen glatten wert nötig, da hier rundungsungenauigkeiten während der rechnung zu periodenwerten nach dem komma führen könnten ...
gruss,
wahsaga
Hallo Wahsaga,
jetzt sieht es bei mir so aus... :-) aber es kommt immer noch kein ergebnis *g*
function ZeitRechnenKo(Stunden, Minuten) {
var ArbZeit = 500;
var StartStd = Stunden *60;
var StartMin = parseInt(Minuten);
var StartZeit = StartStrd + StartMin;
var EndZeit = StartStrd + StartZeit;
return (Endzeit);
}
function ZeitRechnen(Stunden, Minuten) {
var EndZeit = ZeitRechnenKo(Stunden, Minuten);
document.StartZeitEingabe.EndZeitFeld.value = EndZeit;
}
Versteh nicht warum er mir jetzt nichts ausgibt
Gruß Martin
hi,
jetzt sieht es bei mir so aus... :-) aber es kommt immer noch kein ergebnis *g*
wie rufst du die funktion auf?
hast du mal in der funktion als allererstes mit alert geprüft, ob die übergebenen parameter auch wirklich die werte enthalten, die du in ihnen erwartest?
function ZeitRechnenKo(Stunden, Minuten) {
var ArbZeit = 500;
var StartStd = Stunden *60;
var StartMin = parseInt(Minuten);
warum wendest du parseInt hier nur bei den Minuten an, bei den Stunden aber nicht?
return (Endzeit);
wie und wo verarbeitest du den hier von der funktion zurückgegebenen wert weiter?
gruss,
wahsaga
Hallo,
ich benutze parseInt nur bei Minuten, weil ich da keine Rechnung mache. Rechne ich mit einem Eingegebenen Wert (außer +) einer Formularabgabe wird dies automatisch als Zahl behandelt.
Ich gebe unten in die 2 Felder die Stunden und Minuten ein
Übergebe es an die Funktion Zeitrechnen, die eine Endvariable deklariert und mit dem Wert der Funktion Zeitrechnen initialisiert wird.
Dann soll diese Funktion den Wert an das Ausgabe Feld übergeben.
Leider funktioniert das aber irgend wie nicht.
Der Quellcode ist komlett, du kannst es ja mal ausprobieren.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Gehzeit Rechner ;-)</title>
<script type="text/javascript">
<!--
function ZeitRechnenKo(Stunden, Minuten) {
var ArbZeit = 500;
var StartStd = Stunden *60;
var StartMin = parseInt(Minuten);
var StartZeit = StartStrd + StartMin;
var EndZeit = StartStrd + StartZeit;
return (Endzeit);
}
function ZeitRechnen(Stunden, Minuten) {
var EndZeit = ZeitRechnenKo(Stunden, Minuten);
document.StartZeitEingabe.EndZeitFeld.value = EndZeit;
}
//-->
</script>
</head>
<body>
<form name="StartZeitEingabe" action="">
<pre>
Anfangs Uhrzeit
<p>Stunden: <input type="text" name="eingStunden" /></p>
<p>Minuten: <input type="text" name="eingMinuten" /></p>
</pre>
<input type="button" value="Endzeit Ausrechnen"
onClick="ZeitRechnen(document.StartZeitEingabe.eingStunden.value, document.StartZeitEingabe.eingMinuten.value);"/>
<!-- onClick="XY(document.StartZeitEingabe.ZeitEingabe.value)"/> //-->
<pre>
Zeit zum Gehen: <input type="text" name="EndZeitFeld" />
</pre>
</form>
</body>
</html>
Gruß Schmaid
hi,
Der Quellcode ist komlett, du kannst es ja mal ausprobieren.
habe ich, und bekomme prompt fehlermeldungen von meinem browser, über nicht definierte elemente.
var StartStd = Stunden *60;
var StartMin = parseInt(Minuten);
var StartZeit = StartStrd + StartMin;
var EndZeit = StartStrd + StartZeit;
StartStrd ist nicht gleich StartStd,
return (Endzeit);
und Endzeit ist nicht das gleiche wie EndZeit (javascript ist case-sensitive).
du solltest also zunächst mal darauf achten, weniger solche flüchtigkeitsfehler zu machen, bzw. diese vor dem posten zu beseitigen, wenn dein browser dich schon darauf hinweist.
mit der eingabe stunden = 16 und minuten = 48 bekomme ich jetzt das ergebnis 1968 im unteren textfeld angezeigt.
das wird vermutlich noch nicht das sein, was du gerne als ergebnis hättest - aber nachdem die flüchtigkeitsfehler jetzt raus sind, darfst du dir erst mal wieder selber ein paar gedanken ums debugging machen ;-)
gruss,
wahsaga
Hallo Wahsaga,
*LOL* ich muss einfach nur über mich selbst lachen. Ich hab zwei identische Schreibfehler gehabt bei der Variablenzuweisung StartZeit und EndZeit... das war alles... ich denke jetzt komm ich alleine klar ;-)
Vielen dank für die viele Gedult und den 2. Lösungsvorschlag.
Gruß Schmaid