2017-03-02 1 views
0

Meine Form hat eine kleine Anzahl von Bereichen, in denen der Benutzer Werte wie diesesWarum funktionieren Onchange und Onblur nur manchmal?

<input name='extracost' type='text' size='25' id='extracost' value='$extracost' onChange='calculate();' > 

Problem hinzufügen kann nur mit onBlur oder onChange ist, dass ‚scheinen‘ einmal zu arbeiten. Wenn das Element extracost mit 0 oder null beginnt, zum Beispiel, wenn ich es in der Form auf 50 ändere, scheint die Funktion korrekt zu funktionieren, und die Summe erhöht sich um 50. Aber wenn ich es auf 0 zurückstelle, tut es nichts. Wenn ich es wieder auf -50 stelle, wird es später funktionieren.

Wenn ich die extracost auf 50 gesetzt, dann 60, dann 70, geht die insgesamt bis von 180

Hier ist der relevante Javascript

var subtotal = document.getElementById("subtotal").value; 
var extracost = document.getElementById("extracost").value; 
var total = Number(subtotal) + Number(extracost); 
document.getElementById("total").value = total; 

ich viele Threads gelesen habe hier mit ein ähnliches Problem, aber keine der Lösungen hat funktioniert.

+0

onChange = 'calculate();' kann ersetzt werden onBlur = 'calculate();' ohne Erfolg. onmouseup löst das Problem auch nicht –

Antwort

0

Als erstes haben Sie kein onBlur-Ereignis in Ihrem Quellcode.

Darüber hinaus versuchen die Textbox Wert zu analysieren:

var subtotal = parseInt(document.getElementById("subtotal").value, 10); 
var extracost = parseInt(document.getElementById("extracost").value, 10); 
var total = (subtotal) + (extracost); 
document.getElementById("total").value = total; 

ich denke, dass Sie das Problem in Chrome haben. Schließlich funktionieren onChange und onBlur nur, wenn der Cursor aus der Textbox verschwindet.

+0

parseInt gibt NaN zurück –

0

Die Lösung für mein Problem durch die Beseitigung dieser

var subtotal = parseInt(document.getElementById("subtotal").value, 10); 

und sammeln alle einzelnen Formularvariablen zur Berechnung Wert Ihrer und einfach neu berechnen sie gefunden wurde.

Verwandte Themen