2016-04-01 21 views
0

私はkgにkgを変換するプログラムを書いた、それは正常に動作します。どのように私はユーザーに変換を入力するように頼むだろう。例えば、私は0.4536に設定された体重を持っていますが、もし私がそれをしたいと思っていたら、どうしたらいいですか?現実には変わらないだろうが、私は将来のプログラムについて考えている。換算レートが変わり、ユーザーが簡単に入力したいと思う通貨換算も可能だ。ユーザー入力による重量変換

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

との換算係数のために別のフィールドを追加し、機能にユーザー入力を使用しています。 – aphextwix

答えて

0

別の入力フィールドを追加するか、ユーザを促します。

<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; 
} 

またはプロンプト

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