2016-05-09 13 views
4

数値(1つのテキストフィールドから取得)の割合を計算し、計算された値を別のフォームフィールドに設定しようとしています。このために私は以下のコードを試しましたが、jsが検出しているキーイベント/小数点の不一致を観察しています。パーセント計算エラー

たとえば、最初の入力フィールドに100を入力すると(1.75のパーセンテージを計算するために)、私のjsコードに基づいて1.75が予想されますが、2番目のテキストフィールドでは0.175になります。 私はこれを非常に簡単な計算で知っていますが、私はこれを解決することができません。

var reFee = document.getElementById("Estimated Referral Fee"); 
 
var LnAmt = document.getElementById("Loan Amount"); 
 
reFee.disabled = true; 
 

 
LnAmt.onkeydown = 
 
    function isNumber(evt) { 
 

 
    evt = (evt) ? evt : window.event; 
 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
 
     return false; 
 
    } 
 
    calcPer(LnAmt.value); 
 
    } 
 

 
function calcPer(amtval) { 
 
    var pernum = 1.75; 
 
    reFee.value = (pernum/100) * amtval; 
 
}
<div class="form-group"> 
 
    <label class="control-label col-sm-2">Loan Amount</label> 
 
    <div class="col-sm-10"> 
 
    <input id="Loan Amount" placeholder="Provide Loan Amount" data-toggle="tooltip" data-original-title="Provide Loan Amount" required="required" class="form-control" name="Loan Amount" type="text" value=""> 
 
    <span class="help-block"></span> 
 
    </div> 
 
</div> 
 
<div class="form-group"> 
 
    <label class="control-label col-sm-2">Estimated Referral Fee</label> 
 
    <div class="col-sm-10"> 
 
    <input id="Estimated Referral Fee" placeholder="Your referral fee" data-toggle="tooltip" data-original-title="Your referral fee" required="required" class="form-control" name="Estimated Referral Fee" type="text" value="" disabled=""> 
 
    <span class="help-block"></span> 
 
    </div> 
 
</div>

+2

キーを押す前に、あなたは '秒を押すとので、あなたに価値を与える、onkeydown''使用しているためです0 '最初の文字「10」を受け取っています。 'onkeyup'や' oninput'で試してみてください。そうすれば動作するはずです。 –

+0

@squint:はい 'onkeyup'は私のために働いた:) thanks – krishna89

+0

よろしくお願いします。 –

答えて

1

var reFee = document.getElementById("Estimated Referral Fee"); 
 
var LnAmt = document.getElementById("Loan Amount"); 
 
reFee.disabled = true; 
 

 
LnAmt.onkeyup = 
 
    function isNumber(evt) { 
 

 
    evt = (evt) ? evt : window.event; 
 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
 
     return false; 
 
    } 
 
    calcPer(LnAmt.value); 
 
    } 
 

 
function calcPer(amtval) { 
 
    var pernum = 1.75; 
 
    reFee.value = (pernum/100) * amtval; 
 
}
<div class="form-group"> 
 
    <label class="control-label col-sm-2">Loan Amount</label> 
 
    <div class="col-sm-10"> 
 
    <input id="Loan Amount" placeholder="Provide Loan Amount" data-toggle="tooltip" data-original-title="Provide Loan Amount" required="required" class="form-control" name="Loan Amount" type="text" value=""> 
 
    <span class="help-block"></span> 
 
    </div> 
 
</div> 
 
<div class="form-group"> 
 
    <label class="control-label col-sm-2">Estimated Referral Fee</label> 
 
    <div class="col-sm-10"> 
 
    <input id="Estimated Referral Fee" placeholder="Your referral fee" data-toggle="tooltip" data-original-title="Your referral fee" required="required" class="form-control" name="Estimated Referral Fee" type="text" value="" disabled=""> 
 
    <span class="help-block"></span> 
 
    </div> 
 
</div>

関連する問題