fujitsu: Problem Berechnen von input -Wert mit javascript

Hallo ihr lieben,

folgendes Problem: Ich habe ein input über HTML erstellt, in diesen wird eine Zahl eingegeben und wenn die Eingabe erfolgt ist (also der Wert des inputs geändert wurde) soll automatisch das Quadrat der Zahl berechnet werden und in das gleiche input-Feld ausgegeben werden. D.h. es ist immer nur ein Ergebnis zu sehen. Ich hoffe das war soweit verständlich. Ich habe mich schon druch das Netz gequält, aber finde keine Lösung. Meine Ausgabe ergibt immer 'not a number'.. Ich freue mich über eure Tips!

<html>

	<head>
		
		<title>xxx</title>
		
		<script>
		
			function rechnen()
			{
				var wert = document.getElementById('zahl');
				var ergebnis = wert.valueAsNumber * wert.valueAsNumber;
				document.getElementById('zahl').value = ergebnis;
			}
		
		
		</script>
		
	</head>

	<body>
				
		<input id="zahl" name="zahl" style="width:50px;" onchange ="rechnen();">
		
	</body>

</html>

akzeptierte Antworten

  1. Hallo fujitsu,

    Ich habe ein input über HTML erstellt, […] und in das gleiche input-Feld ausgegeben werden.

    Du erkennst den Widerspruch?

    Dein JS-Problem wird dadurch allerdings nicht gelöst.

    Andere hatten dein Problem auch schon: https://stackoverflow.com/questions/18062069/why-does-valueasnumber-return-nan-as-a-value

    Bis demnächst
    Matthias

    --
    Rosen sind rot.
    1. Den Widerspruch erkenne ich nicht, nein. Aber danke für den Link, jetzt läufts.

      1. Hallo fujitsu,

        Den Widerspruch erkenne ich nicht, nein.

        Ein input-Element ist für die Eingabe von Daten da, nicht für die Ausgabe. Dafür gibt es output-Elemente.

        Bis demnächst
        Matthias

        --
        Rosen sind rot.
  2. @@fujitsu

    Meine Ausgabe ergibt immer 'not a number'.

    So ist es spezifiziert: “if the valueAsNumber attribute does not apply, as defined for the input element’s type attribute’s current state, then return a Not-a-Number (NaN) value. Otherwise, if the valueAsDate attribute applies…”

    Für welche Eingabefeld-Typen letzteres der Fall ist, findest du in der dort verlinkten Tabelle.

    LLAP 🖖

    --
    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    1. Danke dir ✌️