2016-07-26 21 views
0

JavaScriptを使用して費用計算を作成しています。 私のコードには2つのボタンがあります。クリアして計算し、両方とも正常に動作します。 しかし、私は別のドロップダウンメニューを選択し、再度計算しようとすると、再計算されませんが、同じ番号または空白のフィールドがテーブルにとどまります。JavaScriptを使用した費用計算機

どのように再計算するのですか?クリアボタンなしでこれを行うことは可能ですか?

var settingValue; 
 
    
 
    function clearForm(){ 
 
    document.getElementById("myForm").reset(); 
 
    } 
 
    
 
    
 
    function settingValue() { 
 
     var payment; 
 
     var copayPerc = document.getElementById("copayPerc").value; 
 
     settingValue = document.getElementById("Setting").value; 
 
     payment=medicarePaymentCal(settingValue); 
 
     document.getElementById("medipayment").value = payment; 
 
     document.getElementById("adj").value=seqAdjCal(payment); 
 
    \t document.getElementById("net").value=payment+seqAdjCal(payment); 
 
     
 
     document.getElementById("copay").value=payment*0.2; 
 
     document.getElementById("actualCopay").value=payment*0.2*copayPerc; 
 
     totalProductCost(); 
 
    } 
 
    
 
    
 
    function medicarePaymentCal(value1) { 
 
     var result; 
 
     if (value1 == "Office") { 
 
     return 1411.21; 
 
     } else if (value1="HOPD") { 
 
     return 500; 
 
     } 
 
    } 
 
     
 
    function seqAdjCal(val){ 
 
     return -(0.02*(0.8*val)); 
 
     
 
    } 
 
     
 
    function totalProductCost(){ 
 
     var applications=document.getElementById("applications").value; 
 
     var productCost=document.getElementById("productCost").value; 
 
     var total=applications*productCost; 
 
     \t document.getElementById("totalProductCost").value = total; 
 
    } 
 
<html> 
 
    <head> 
 
    </head> 
 
    <body> 
 
    <form method="post" id="myForm"> 
 
    <table border=1> 
 
    <tr> 
 
     <td>Setting : </td> 
 
     <td><select id="Setting"> 
 
     <option value="Office">Office</option> 
 
     <option value="HOPD">HOPD</option> 
 
     </select></td> 
 
    </tr> 
 
    <tr> 
 
     <td>Facility : </td> 
 
     <td><select id="Facility"> 
 
     <option value="100015">Mount Sinai, 123 Main Street, New York</option> 
 
     <option value="100016">NYU Medical, 25 North Broadway, New York</option> 
 
     </select></td> 
 
    
 
     <tr> 
 
      <td>Product Size : </td> 
 
      <td> 
 
      <100sq cm</td> 
 
     </tr> 
 
    
 
     <tr> 
 
      <td>Number of DFU patients :</td> 
 
      <td>10</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Patient co-pay % (based on wage adj.rate) : </td> 
 
      <td>0.2</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Co-Pay percent actuallly collected : </td> 
 
      <td><input id="copayPerc" type="number" value="0.75"></td> 
 
     </tr> 
 
    
 
     <tr> 
 
      <td><input type="button" id="clear" value="Clear" onclick="clearForm();"> 
 
    \t </td> 
 
      <td> 
 
      <input type="button" id="button" value="calculate" onclick="settingValue();"> 
 
      </td> 
 
     </tr> 
 
    
 
    </table> 
 
    
 
    
 
     <table border=1> 
 
     
 
    
 
     <tr> 
 
      <td>Medicare Payment :</td> 
 
      <td> 
 
      <input type="number" id="medipayment"> 
 
      </td> 
 
     </tr> 
 
    
 
    <tr> 
 
    \t <td>Sequestration Adjustment (-2%) : </td> 
 
    \t <td> <input type="number" id="adj"> </td> 
 
    </tr> 
 
    <tr> 
 
    \t <td>Medicare Payment Net of Seq. : </td> 
 
    \t <td> <input type="number" id="net"> </td> 
 
    </tr> 
 
    <tr> 
 
    \t <td>Projected Patient Co-Pay : </td> 
 
    \t <td> <input type="number" id="copay"> </td> 
 
    </tr> 
 
    
 
    <tr> 
 
    \t <td>Actual Co-Pay Amount Collected : </td> 
 
    \t <td> <input type="number" id="actualCopay"> </td> 
 
    </tr> 
 
    
 
    <tr> 
 
    \t <td>No. of applications per Episode : </td> 
 
    \t <td> <input type="number" id="applications" value="1"> </td> 
 
    </tr> 
 
    
 
    <tr> 
 
    \t <td>Product cost per treatment : </td> 
 
    \t <td> <input type="number" id="productCost" value="1125"> </td> 
 
    </tr> 
 
    
 
    <tr> 
 
    <td>Total product cost per episode : </td> 
 
    \t <td> <input type="number" id="totalProductCost"> </td> 
 
    </tr> 
 
    
 
    
 
    
 
     </table> 
 
    
 
    </form> 
 
    </body> 
 
    </html> 
 

+1

あなたがエラーを持っているみたいに見えます。変数と関数の両方に同じ名前の 'setValue'を使用しています。関数が最後に定義されているので、最初の実行は機能します。しかし、コードが実行され、変数値で関数が変更されます。単に変数や関数の名前を変更してみてください。 –

答えて

2

あなたvar settingValuefunction settingValueと同じ名前を持っています。

ただ、1の名前を変更して動作するはずです:

var settingValue; 
 

 
    function clearForm() { 
 
    document.getElementById("myForm").reset(); 
 
    } 
 

 

 
    function funcSettingValue() { 
 
    var payment; 
 
    var copayPerc = document.getElementById("copayPerc").value; 
 
    settingValue = document.getElementById("Setting").value; 
 
    payment = medicarePaymentCal(settingValue); 
 
    document.getElementById("medipayment").value = payment; 
 
    document.getElementById("adj").value = seqAdjCal(payment); 
 
    document.getElementById("net").value = payment + seqAdjCal(payment); 
 

 
    document.getElementById("copay").value = payment * 0.2; 
 
    document.getElementById("actualCopay").value = payment * 0.2 * copayPerc; 
 
    totalProductCost(); 
 
    } 
 

 

 
    function medicarePaymentCal(value1) { 
 
    var result; 
 
    if (value1 == "Office") { 
 
     return 1411.21; 
 
    } else if (value1 = "HOPD") { 
 
     return 500; 
 
    } 
 
    } 
 

 
    function seqAdjCal(val) { 
 
    return -(0.02 * (0.8 * val)); 
 

 
    } 
 

 
    function totalProductCost() { 
 
    var applications = document.getElementById("applications").value; 
 
    var productCost = document.getElementById("productCost").value; 
 
    var total = applications * productCost; 
 
    document.getElementById("totalProductCost").value = total; 
 
    }
<html> 
 
<form method="post" id="myForm"> 
 
    <table border=1> 
 
    <tr> 
 
     <td>Setting :</td> 
 
     <td> 
 
     <select id="Setting"> 
 
      <option value="Office">Office</option> 
 
      <option value="HOPD">HOPD</option> 
 
     </select> 
 
     </td> 
 
    </tr> 
 
    <tr> 
 
     <td>Facility :</td> 
 
     <td> 
 
     <select id="Facility"> 
 
      <option value="100015">Mount Sinai, 123 Main Street, New York</option> 
 
      <option value="100016">NYU Medical, 25 North Broadway, New York</option> 
 
     </select> 
 
     </td> 
 

 
     <tr> 
 
     <td>Product Size :</td> 
 
     <td> 
 
      <100sq cm</td> 
 
     </tr> 
 

 
     <tr> 
 
     <td>Number of DFU patients :</td> 
 
     <td>10</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Patient co-pay % (based on wage adj.rate) :</td> 
 
     <td>0.2</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Co-Pay percent actuallly collected :</td> 
 
     <td> 
 
      <input id="copayPerc" type="number" value="0.75"> 
 
     </td> 
 
     </tr> 
 

 
     <tr> 
 
     <td> 
 
      <input type="button" id="clear" value="Clear" onclick="clearForm();"> 
 
     </td> 
 
     <td> 
 
      <input type="button" id="button" value="calculate" onclick="funcSettingValue();"> 
 
     </td> 
 
     </tr> 
 

 
    </table> 
 

 

 
    <table border=1> 
 

 

 
    <tr> 
 
     <td>Medicare Payment :</td> 
 
     <td> 
 
     <input type="number" id="medipayment"> 
 
     </td> 
 
    </tr> 
 

 
    <tr> 
 
     <td>Sequestration Adjustment (-2%) :</td> 
 
     <td> 
 
     <input type="number" id="adj"> 
 
     </td> 
 
    </tr> 
 
    <tr> 
 
     <td>Medicare Payment Net of Seq. :</td> 
 
     <td> 
 
     <input type="number" id="net"> 
 
     </td> 
 
    </tr> 
 
    <tr> 
 
     <td>Projected Patient Co-Pay :</td> 
 
     <td> 
 
     <input type="number" id="copay"> 
 
     </td> 
 
    </tr> 
 

 
    <tr> 
 
     <td>Actual Co-Pay Amount Collected :</td> 
 
     <td> 
 
     <input type="number" id="actualCopay"> 
 
     </td> 
 
    </tr> 
 

 
    <tr> 
 
     <td>No. of applications per Episode :</td> 
 
     <td> 
 
     <input type="number" id="applications" value="1"> 
 
     </td> 
 
    </tr> 
 

 
    <tr> 
 
     <td>Product cost per treatment :</td> 
 
     <td> 
 
     <input type="number" id="productCost" value="1125"> 
 
     </td> 
 
    </tr> 
 

 
    <tr> 
 
     <td>Total product cost per episode :</td> 
 
     <td> 
 
     <input type="number" id="totalProductCost"> 
 
     </td> 
 
    </tr> 
 

 

 

 
    </table> 
 

 
</form> 
 

 
</html>

+1

変数settingValueを設定する行の前に 'var'を追加することもできます。これにより、変数がグローバルスコープを持ち、関数を壊さないようにします。 –

+0

これは本当ですが、そのグローバル変数を持つ必要は全くないようです –

関連する問題