2017-07-15 96 views
-1

我在Chrome中使用下面的腳本時遇到問題。 (它在Firefox和IE中都能很好地工作。)除了calcTotal函數外,一切都可以工作,但我無法弄清楚原因。 **我添加了我用來獲取變量的表格,如果這有助於澄清事情。 **部分Javascript無法在Chrome中工作

<script type="text/javascript"> 
     function calcWages(){ 
      document.getElementById('wagestotal').innerHTML = ''; 
      var hours = new Number(document.getElementById('hours').value); 
    var rate = new Number(document.getElementById('rate').value); 
      document.getElementById('wagestotal').innerHTML = ((hours * rate).toFixed(2)); 
      document.getElementById('wagestotal').value = ((hours * rate).toFixed(2)); 

     } 

     function calcMilage(){ 
      document.getElementById('milagetotal').innerHTML = ''; 
      var miles = new Number(document.getElementById('miles').value); 
    document.getElementById('milagetotal').innerHTML = ((miles * .535).toFixed(2)); 
    document.getElementById('milagetotal').value = ((miles * .535).toFixed(2)); 
       } 


     function calcTotal(){ 
      document.getElementById('total').innerHTML = ''; 
     var wages = new Number(document.getElementById('wagestotal').innerHTML); 
     var milage = new Number(document.getElementById('milagetotal').innerHTML); 
     var travel = new Number(document.getElementById('travel').value); 
     var lodging = new Number(document.getElementById('lodging').value); 
     var food = new Number(document.getElementById('food').value); 
     var office = new Number(document.getElementById('office').value); 
     var other = new Number(document.getElementById('other').value); 
document.getElementById('total').value = ((wages + milage + travel + lodging + food + office + other).toFixed(2)); 
} 


     </script> 



Items for Reimbursement:<br/> 
<Table> 
<tr> 
    <td>Wages:</td> 
    <td>Hours:(8 a day Max)<input type="text" name="hours" id="hours" size="4" maxlength="3" onchange="calcWages(); calcTotal()"></td> 
    <td>Rate:<input type="text" name="rate" id="rate" size="3" maxlength="5" onchange="calcWages(); calcTotal()"></td> 
    <td>=</td> 
    <td><input readonly name="wagestotal" id="wagestotal" size="6" maxlength="7"/></td> 
</tr> 
<tr> 
    <td>Mileage:</td> 
    <td>Miles<input type="text" name="miles" id="miles" size="4" maxlength="4" onchange="calcMilage(); calcTotal()"></td> 
    <td>IRS rate ($0.535)</td> 
    <td>=</td> 
    <td><input readonly name="milagetotal" id="milagetotal" size="6" maxlength="7"/></td> 
</tr> 
<tr> 
    <td>Travel:</td> 
    <td colspan="2"><input type="text" name="travelitem" id="travelitem" size="36"></td> 
    <td>=</td> 
    <td><input type="text" name="travel" id="travel" size="6" maxlength="7" onchange="calcTotal()"> </td> 
</tr> 
<tr> 
    <td>Lodging:</td> 
    <td colspan="2"><input type="text" name="lodgingitem" id="lodgingitem" size="36"> </td> 
    <td>=</td> 
    <td><input type="text" name="lodging" id="lodging" size="6" maxlength="7" onchange="calcTotal()"></td> 
</tr> 
<tr> 
    <td>Food:</td> 
    <td colspan="2"><input type="text" name="fooditem" id="fooditem" size="36"> </td> 
    <td>=</td> 
    <td><input type="text" name="food" id="food" size="6" maxlength="7" onchange="calcTotal()"></td> 
<tr> 
    <td>Office Supplies:</td> 
    <td colspan="2"><input type="text" name="officeitem" id="officeitem" size="36"> </td> 
    <td>=</td> 
    <td><input type="text" name="office" id="office" size="6" maxlength="7" onchange="calcTotal()"></td> 
</tr> 
<tr> 
    <td>Other:</td> 
    <td colspan="2"><input type="text" name="otheritem" id="otheritem" size="36"></td> 
    <td>=</td> 
    <td><input type="text" name="other" id="other" size="6" maxlength="7" onchange="calcTotal()"></td> 
</tr> 
<tr> 
    <td></td> 
    <td></td> 
    <td>Grand Total:</td> 
    <td>=</td> 
    <td><input readonly name="total" id="total" size="6" maxlength="9"/></td> 
</tr> 
</table> 
+0

你爲什麼用innerHtml和旅行數據獲得工資與價值?什麼HTML控件擁有這些值? –

+0

**您的示例既不簡單也不完整,也不可驗證**。請參閱[幫助中心瞭解如何提出問題](https://stackoverflow.com/help/mcve)。你也可能想解釋爲什麼你要在所有地方使用包裝器對象而不是原始數字。 – phihag

+0

對不起,任何奇怪的編碼。我是JavaScript新手,並且自學成才。 – Type540

回答

0

嘗試使用

+document.getElementById('wagestotal').innerHTML 

,而不是

new Number(document.getElementById('wagestotal').innerHTML) 

或只使用

Number(document.getElementById('wagestotal').innerHTML) 
在你值的情況下

 var wages = Number(document.getElementById('wagestotal').innerHTML); 
     var milage = Number(document.getElementById('milagetotal').innerHTML); 
     var travel = Number(document.getElementById('travel').value); 
     var lodging = Number(document.getElementById('lodging').value); 
     var food = Number(document.getElementById('food').value); 
     var office = Number(document.getElementById('office').value); 
     var other = Number(document.getElementById('other').value); 

     document.getElementById('total').value = new Number(wages + milage + travel + lodging + food + office + other).toFixed(2);