2013-03-24 98 views
0

下面的代碼不能在IE,任何人都可以幫助我嗎?IE瀏覽器的parseInt錯誤

onclick="x.value=parseInt(b.value*d.value*c.value)+parseInt(a.value) 

在所有其他的瀏覽器,它似乎是罰款,做計算,並給予輸出,但在IE無論我做什麼,輸出保持原樣0值,下面是我的整個形式瞄準問題好:

<form id="mainselection"> 
     <h6>Transfer Fee Calculator</h6>  
<select name="a"> 
    <option value="0">Select</option> 
    <option value="0">Dalaman</option> 
    <option value="30">Bodrum</option> 
</select> 
<select name="b"> 
    <option value="0">Resort</option> 
    <option value="10">Marmaris</option> 
    <option value="12">Icmeler</option> 
    <option value="18">Turunc</option> 
</select> 
<select name="c"> 
    <option value="0">Pax</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="8">8</option> 
    <option value="9">9</option> 
    <option value="10">10</option> 
    <option value="11">11</option> 
    <option value="12">12</option> 
</select> 
<select name="d"> 
    <option value="1">One Way</option> 
    <option value="2">Return</option> 
</select> 
<br /> 
<span class="total">Total:</span><output name="x" for="a b c ">0</output>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="currency">£</span> 
<br /> 
<br /> 
<input type="button" value="Calculate" class="cal-but" onclick="x.value=parseInt(b.value*d.value*c.value)+parseInt(a.value)"> 
<input type="button" value="Book Now" class="book" onclick="window.location='reservation.html'"> 

+0

除瀏覽器錯誤外,請勿使用侵入性Javascript。 – moonwave99 2013-03-24 12:51:09

+0

您是否檢查錯誤? – thescientist 2013-03-24 12:51:50

+0

如果您瞭解如何使用邊距和填充,它肯定會像魔術一樣工作,所以' '太多了! – adeneo 2013-03-24 12:55:14

回答

1

首先要說的是,這是不是一個 IE漏洞。這與你在Javascript代碼中使用訪問元素名稱的非標準方法有關。

您遇到的問題是您使用元素的'name屬性作爲全局JavaScript變量。這不是(並且從未)是推薦的做法。有些瀏覽器出於向後兼容性的原因支持它,但這並不意味着它會在任何瀏覽器的未來版本中繼續工作。它不是標準的,不應該使用。

直接在Javascript中訪問各個元素的正確方法是使用getElementsById()方法。這會爲您提供良好的跨瀏覽器兼容性,即您當前的代碼不具備的兼容性。

解決辦法:

  • 第1步:添加id='x'旁邊的name='x'。而做,你現在的名字

  • 第2步訪問的任何其他元素一樣的:無論你正在使用像x是對元素的名稱變量,與document.getElementById('x')替代變量名。

    是的,它有更多的冗長,但這是正確的做法。

這將爲您解決問題。

相關問題