2017-11-28 6 views
0

Ich brauche ein einfaches Berechnungsskript, das eingegebene Zahlenwerte in ein Eingabefeld übernimmt und die Ergebnisse dynamisch basierend auf vordefinierten Kriterien anzeigt.Machen Sie dynamische Berechnungen von Tastatureingabe mit JavaScript?

Zum Beispiel habe ich eine Reihe von Gebührenkriterien wie folgt:

0-150 = No charge 

150-300 = Display only fixed monthly fee 

300-2500 = multiply by 0.002 + fixed monthly fee - 300 = amount 

enter amount more than 2500 = multiply by 0.0015 + fixed monthly fee - 300 = amount 

Ich brauche die dynamisch angezeigten Ergebnisse, wenn der Benutzer in der Eingabe ist die Eingabe, ohne eine Taste zu drücken. Ich möchte JavaScript/jQuery dafür verwenden.

Wie kann das gemacht werden? Ich finde es schwierig, den Code einzurichten. Bitte helfen Sie mir mit Anweisungen und Beispielen. Oder noch besser, führen Sie mich zu der Lösung, die wie beschrieben funktioniert. Kann das gemacht werden?

Ich schätze Ihre Hilfe sehr und danke allen mutigen Codierern, die sich dieser Herausforderung stellen! :)

+0

'Onkeyup' ist, was Sie suchen müssen. Außerdem hat JavaScript Probleme mit Math. Bevor Sie also addieren oder subtrahieren, wollen Sie mit 'var mp = Math.pow (10, 17) multiplizieren' und dann durch 'mp' dividieren, um es in eine Dezimalzahl zurückzubringen. – PHPglue

+0

Was ist 'feste monatliche Gebühr' hier? – Thaadikkaaran

+0

Hier ist ein sehr einfaches Beispiel: https://jsfiddle.net/DerekL/oep9cccy/ –

Antwort

0

Ich habe es. So ist die Funktion wie folgt:

function calResult(n){ 
    var fixedMonthlyFee = 9.95; 

    if(0 <= n && n <= 150){ 
     jQuery("#desc").text("No charge"); 
    }else if(150 <= n && n <= 300) { 
     jQuery("#desc").text(fixedMonthlyFee); 
    } else if(300 <= n && n <= 2500) { 
     jQuery("#desc").text(n * 0.002 * 30 + fixedMonthlyFee); 
    } else { 
     jQuery("#desc").text(n * 0.0015 * 30 + fixedMonthlyFee); 
    } 
} 
console.log('--No Erros--'); 

Hoffe, dass für andere hilfreich sein wird!

+0

Wie kann ich die folgende Funktion in das obige Skript integrieren: Funktion roundToTwo (num) { Rückkehr + (Math.round (num + "e + 2") + "e-2"); } – ivetame