/ / Javascript-Berechnungen funktionieren nur im IE - Javascript, Formulare

Javascript Berechnungen funktionieren nur im IE - Javascript, Formulare

Ich versuche, ein Formular zu erstellen, damit der Benutzer bestimmte Informationen eingeben kann und JavaScript die Berechnungen für sie vornimmt. Ich habe versucht, zu verwenden http://demo.rsjoomla.com/calculation-form-example (die auf der linken Seite), um die Grundlagen zu erlernen, und ich kann von dort aus manipulieren. Bisher funktioniert es allerdings nur im IE.

Hier ist das grundlegende Layout meines Codes:

HTML

<input type="number" name="income1" value="0" onkeyup="update()">
<input type="number" name="income2" value="0" onkeyup="update()">
<input type="number" name="income3" value="0" onkeyup="update()">

JavaScript

var op1=document.getElementById("income1");
var op2=document.getElementById("income2");
var result=document.getElementById("income3");
if(op1.value=="" || op1.value!=parseFloat(op1.value)) op1.value=0;
if(op2.value=="" || op2.value!=parseFloat(op2.value)) op2.value=0;
result.value=0;
result.value=parseInt(result.value);
result.value=parseInt(result.value)+parseInt(op1.value) - parseInt(op2.value);

Antworten:

0 für die Antwort № 1

Wenn Sie getElementById ausführen möchten, müssen Sie eine ID in Ihrem Element haben.

<input type="number" id="income1" value="0" onkeyup="update()">

var op1=document.getElementById("income1");

Oder Sie könnten jQuery verwenden (erfordert die Angabe einer jQuery-Quelle):

<input type="number" name="income1" value="0" onkeyup="update()">

var op1 = ${"input[name=income1]").val();

Alternativ können Sie dies tun, vorausgesetzt, Sie haben nur ein Element namens income1. Dies ist keine sehr gute Methode, aber sie sollte funktionieren.

<input type="number" name="income1" value="0" onkeyup="update()">

var op1=document.getElementsByName("income1")[0];

5 für die Antwort № 2

Sie haben Code geschrieben, der nach id sucht

document.getElementById("income1");

Wo ist die ID auf dem Eingang?

<input type="number" name="income1" value="0" onkeyup="update()">

Name ist nicht dasselbe wie id.

Und deinen parseFloat check solltest du dir wohl mal ansehen isNaN(). Und du benutzt parseInt() am unteren Rand, und Sie verwenden parseFloat() über!