2013-03-24 111 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')替代变量名。

    是的,它有更多的冗长,但这是正确的做法。

这将为您解决问题。

相关问题