Javascript Rechner geht in einem Quellcode nicht, alleine aber !
Lega
- javascript
Hallo,
habe ein Problem. Undzwar habe ich einen "KW-zu-PS" Rechner geschrieben der mir Automatisch die eingetragene KW Zahl in ein PS Feld schreibt. Funktioniert soweit auch gut, aber nur wenn NUR DER RECHNER in einer eigenen HTML-Datei ist. Ich will diesen Rechner aber in ein Formular eintragen...dann funktioniert der aber nicht mehr...kann es bestimmte Gründe dafür geben???
~~~javascript
<form name="Rechner">
<script language="JavaScript" type="text/javascript">
function Sonderfunktion(Funktion)
{
var x = 0;
x = eval(window.document.Rechner.Display.value);
window.document.Rechner.Display2.value = Math.ceil(x*1.359622-0.5);
}
</script>
<b>KW:</b><input type="text" id="kw" name="Display" size="6" maxlength="6" onmouseout="Sonderfunktion ('Funktion')"/>
<b>PS:</b> <input type="text" id="ps" name="Display2" size="6" maxlength="6" />
</form>
==========================================================
Vielen Dank!!!!
Lega
@@Lega:
nuqneH
eval(window.document.Rechner.Display.value)
Nein! Nie und nimmer eval()
*. Verwende [ref:self812;javascript/objekte/unabhaengig.htm#parse_float@title=parseFloat()]
oder [ref:self812;javascript/objekte/unabhaengig.htm#parse_int@title=parseInt()]
!
Math.ceil(x*1.359622-0.5)
Auch das ist etwas unsinnig. Zum Runden gibt es Math.[ref:self812;javascript/objekte/math.htm#round@title=round()]
.
Qapla'
* es sei denn, du weißt _ganz genau_, was du tust.
Danke für deine Antwort. Habe die Änderungen testweise mal durchgeführt.
Leider funktioniert das ebenfalls nicht. Es geht mir hier auch nicht um den Quellcode selber sondern um die Tatsache das der nicht in meinem Formular funktioniert.
eval(window.document.Rechner.Display.value)
... Verwende
[ref:self812;javascript/objekte/unabhaengig.htm#parse_float@title=parseFloat()]
oder[ref:self812;javascript/objekte/unabhaengig.htm#parse_int@title=parseInt()]
!
Eine explizite Umwandlung ist hier nicht einmal nötig, die nimmt der *-Operator ohnehin vor (intern ToNumber, entspricht Number(x)):
Math.ceil(x*1.359622-0.5)
Generell erlaubt eine explizite Typumwandlung natürlich noch eine Überprüfung der Eingaben - die sollte man dann auch einbauen, z.B. mit http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#is_nan@title=isNaN.
Mathias
Moin,
<form name="Rechner">
<script language="JavaScript" type="text/javascript">
function Sonderfunktion(Funktion)
{
var x = 0;
x = eval(window.document.Rechner.Display.value);
window.document.Rechner.Display2.value = Math.ceil(x*1.359622-0.5);
}
</script>
<b>KW:</b><input type="text" id="kw" name="Display" size="6" maxlength="6" onmouseout="Sonderfunktion ('Funktion')"/>
<b>PS:</b> <input type="text" id="ps" name="Display2" size="6" maxlength="6" />
</form>
und wie äußert sich nun das Nicht-Funktionieren?
Zusätzlich zu dem, was Gunnar schon zu eval() gesagt hat, halte ich es für unsinnig, die Umrechnung mit einem onmouseout anzustoßen - was spielt die Maus hier für eine Rolle? Genau, keine. Die Umrechnung sollte daher als submit-Ereignis stattfinden.
Außerdem ist mir schleierhaft, wozu du der Funktion noch einen Parameter mitgibst, der nirgends verwendet wird. Was möchtest du damit erreichen?
Ciao,
Martin
--
Wer barfuß geht, dem kann man nicht die Schuld in die Schuhe schieben.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
Das mit dem Mouseout hat nen bestimmten Grund. Das Formular soll später auf einem Touchscreen dargestellt werden und der PS Wert soll nach Eingabe des KW Wertes umgerechnet in dem Feld erscheinen.
Wie gesagt, es geht mir darum, das dieser Code in meinem Fomrular nichtmehr geht! Nicht um den Quellcode selber! ;-)
@@Lega:
nuqneH
Das mit dem Mouseout hat nen bestimmten Grund. Das Formular soll später auf einem Touchscreen dargestellt werden
?? Touchscreen und mouse…-Events?
Mir scheint, du möchtest auf andere http://de.selfhtml.org/javascript/sprache/eventhandler.htm@title=Events reagieren: blur, change, input.
Wie gesagt, es geht mir darum, das dieser Code in meinem Fomrular nichtmehr geht! Nicht um den Quellcode selber! ;-)
Qapla'
Das Mouseout Event funktioniert beim Touchscreen wunderbar. Sobald die Eingabe am iPad abgeschlossen ist und man das nächste Feld anklickt wird die PS Zahl Berechnet.
Aber was soll das mit dem "Wie gesagt ..."? Verstehe ich nicht.
Hallo,
Das Mouseout Event funktioniert beim Touchscreen wunderbar. Sobald die Eingabe am iPad abgeschlossen ist und man das nächste Feld anklickt wird die PS Zahl Berechnet.
klar, und wenn du statt des mouseout-Events das blur- oder submit-Event nimmst, dann geht's auch mit "normalen" Clients, die eine Tastatur benutzen.
Ciao,
Martin
Jagut, Back to Topic please...
Gibt es Gründe wieso der Code in meinem Formular nichtmehr funktionieren kann?
Hallo,
Gibt es Gründe wieso der Code in meinem Formular nichtmehr funktionieren kann?
Viele Gründe sind möglich. Dazu müsstest du uns den Code zeigen, der *nicht funktioniert* - nicht den Code, der wunderbar funktioniert. :-)
Am besten zum Ausprobieren online stellen und hier verlinken, zur Not mit http://jsfiddle.net/ oder http://pastebin.com/.
Ich vermute schon einmal ins Blaue hinein, dass sich die Formular- und Feld-Bezeichner in deinem anderen Formular unterscheiden, sodass das Ansprechen der Felder nicht mehr klappt. Achte auf Fehlermeldungen in der Fehlerkonsole.
Mathias
Hallo, habe das Formulat hier hochgeladen und es wird bis ich das Problem gelöst bekomme dort erreichbar sein: http://81.30.158.217/html/formular.htm
Nicht wundern. Habe Das Formular teilweise mitm Publisher2010 angepasst weswegen der Code jetzt so aussieht.
Hallo,
Hallo, habe das Formulat hier hochgeladen und es wird bis ich das Problem gelöst bekomme dort erreichbar sein: http://81.30.158.217/html/formular.htm
dort ist aber das Script, das die Umrechnung durchführen soll, überhaupt nicht eingebunden. Was soll uns das also nützen?
Nicht wundern. Habe Das Formular teilweise mitm Publisher2010 angepasst weswegen der Code jetzt so aussieht.
Tu das bitte nie wieder - jedenfalls nicht, wenn jemand anders den Code ansehen soll. Das ist ein Verstoß gegen die Genfer Konventionen und kann mit bis zu drei Kilo Katzendreck bestraft werden!
Ciao,
Martin
Ja, sorry bin nicht gerade der Experte in HTML ;-)
Habe ausversehen den falschen Code hochgeladen. ist jetzt der richtige!!!
Hallo,
Ja, sorry bin nicht gerade der Experte in HTML ;-)
scheint so ...
Habe ausversehen den falschen Code hochgeladen. ist jetzt der richtige!!!
Und dort sind zwei Formulare verschachtelt. Das ist in HTML nicht erlaubt - ein form-Element darf fast alles enthalten, aber kein weiteres form-Element.
Ciao,
Martin
Habs rausgenommen. Funktioniert leider immernoch nicht.
Habs rausgenommen. Funktioniert leider immernoch nicht.
Wie gesagt:
Ich vermute schon einmal ins Blaue hinein, dass sich die Formular- und Feld-Bezeichner in deinem anderen Formular unterscheiden, sodass das Ansprechen der Felder nicht mehr klappt. Achte auf Fehlermeldungen in der Fehlerkonsole.
Offenbar hast du das überlesen, sonst hättest du den Fehler schon gefunden.
Bitte mache dir klar, was
document.Rechner.Display.value
und
document.Rechner.Display2.value
tun.
Sie suchen ein Formular mit name="Rechner" und darin Felder mit name="Display" bzw. name="Display2", sprechen dann deren Wert an.
Dein Formular hat aber keinen entsprechenden Namen – trage ihn nach.
Siehe:
http://de.selfhtml.org/javascript/objekte/forms.htm
http://de.selfhtml.org/javascript/objekte/elements.htm
Mathias
Alles klar, danke dir. Habs hinbekommen.
@@Lega:
nuqneH
Hallo, habe das Formulat hier hochgeladen
Da springen mir 2 Schreibfehler ins Auge:
„Strasse“ schreibt sich (außer in der Schweiz) mit ß
das Deppenleerzeichen in „E-Mail Adresse“.
Qapla'
- „Strasse“ schreibt sich (außer in der Schweiz) mit ß
Qapla'
Inwieweit soll da hinsichtlich des Javascript-Problems hilfreich sein? Meinst Du ernstlich die automatische Rechtschreibprüfung hält in einigen Browsern die Ausführung von Javascript an?
Fred
@@Fred Furunkelstein:
nuqneH
Inwieweit soll da hinsichtlich des Javascript-Problems hilfreich sein?
Qapla'
Du hast scheinbar versehentlich falsch verlinkt. Denn dort "sagst" Du nichts dazu inwieweit Schreibfehler außerhalb des eigentlichen Javascript-Codes Probleme Javascript-Probleme verursachen können.
Fred
@@Fred Furunkelstein 2011:
nuqneH
Du hast scheinbar versehentlich falsch verlinkt.
Nein. Du hast scheinbar versehentlich(?) falsch verstanden.
Denn dort "sagst" Du nichts dazu inwieweit Schreibfehler außerhalb des eigentlichen Javascript-Codes Probleme Javascript-Probleme verursachen können.
Kannst du nicht verstehen oder willst du nicht verstehen, dass zusätzliche Hinweise ein besonderer Service hier im Forum sind?
Qapla'
Kannst du nicht verstehen oder willst du nicht verstehen, dass zusätzliche Hinweise ein besonderer Service hier im Forum sind?
Bei einen besonderen Service dieser sehr speziellen Art fällt mir das offen gestanden doch ziemlich schwer. Du musst bedenken wie das bei den Fragestellern ankommt. In der Rubrik "Webseitenbewertung" sähe das übrigens ganz anders aus.
Im konkreten Fall ist es nicht ganz so schlimm weil Du schon vorher hilfreiches beigetragen hast. Aber leider lese ich oft derlei "mod_speling" oder gar "mod_baloney" ohne dass die eigentliche Hilfe überhaupt stattfindet.
Fred