2016-04-01 10 views
0

Ich schrieb ein Programm, das Pfund in kg umwandelt, funktioniert es gut. Wie würde ich den Benutzer bitten, die Konvertierung einzugeben? Zum Beispiel habe ich das Gewicht auf 0,4536 eingestellt, aber wenn ich wollte, dass es was auch immer der Benutzer will, wie mache ich das? Ich weiß, dass es sich in der Realität nicht ändern würde, aber ich denke über zukünftige Programme nach - möglicherweise Währungsumrechnungen, bei denen sich die Preise ändern und ich möchte, dass der Benutzer sie leicht eingeben kann.Gewicht Umwandlung mit Benutzereingabe Javascript

Javascript

function onlyNumber(fld) { 
    if(fld.value.match(/[^0-9.]/)) { 
     fld.value=fld.value.replace(/[^0-9.]/g,''); 
    } 
} 

function convertUnit(lbs, kilo) { 
    retValue = 0; 

    if (isNaN (kilo)) { alert ('Non-numeric value'); return 0; } 
     kilo = parseFloat (kilo); 
     var factor = 0.4536; 

    if (lbs == 'kg2lb') { 
     retValue = kilo/factor; 
    } 

    else if (lbs == 'lb2kg') { 
     retValue = kilo*factor; 
    } 

    return retValue; 
} 

HTML

<form> 
    <table> 
     <tr> 
      <td>LB<td> 
      <input type="text" name="lb" id="lb" onblur="this.form.kg.value=convertUnit('lb2kg',this.value);" onkeyup="onlyNumber(this);"> 
     </tr> 
     <tr> 
      <td>KG<td> 
      <input type="text" name="kg" id="kg" onblur="this.form.lb.value=convertUnit('kg2lb',this.value);" onkeyup="onlyNumber(this);"> 
     </tr> 
    </table> 
</form> 
+0

ein weiteres Feld für Umrechnungsfaktor hinzufügen und die Benutzereingabe in Ihren Funktionen verwenden. – aphextwix

Antwort

0

ein weiteres Eingabefeld hinzufügen oder den Benutzer dazu auffordern.

<form> 
    <table> 
     <tr> 
      <td>LB<td> 
      <input type="text" name="lb" id="lb" onblur="this.form.kg.value=convertUnit('lb2kg',this.value);" onkeyup="onlyNumber(this);"> 
     </tr> 
     <tr> 
      <td>KG<td> 
      <input type="text" name="kg" id="kg" onblur="this.form.lb.value=convertUnit('kg2lb',this.value);" onkeyup="onlyNumber(this);"> 
     </tr> 
     <tr> 
      <td>Ratio<td> 
      <input type="text" name="r" id="r" onkeyup="onlyNumber(this); window.ratio = this.value;"> 
     </tr> 
    </table> 
</form> 

window.ratio = undefined; 

function convertUnit(lbs, kilo) { 
    retValue = 0; 

    if (isNaN (kilo)) { alert ('Non-numeric value'); return 0; } 
     kilo = parseFloat (kilo); 

    if (lbs == 'kg2lb') { 
     retValue = kilo/window.ratio; 
    } 

    else if (lbs == 'lb2kg') { 
     retValue = kilo*window.ratio; 
    } 

    return retValue; 
} 

oder mit einem Prompt

window.ratio = prompt("Which ratio to use ?"); // add validation