繁体   English   中英

IE上的Javascript parseInt错误

[英]Javascript parseInt error on IE

以下代码在IE不起作用,有人可以帮助我吗?

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'">

首先要说的是,这不是 IE错误。 这与您使用非标准的方式来访问Javascript代码中的元素名称有关。

您遇到的问题是,您正在使用元素的name属性作为全局Javascript变量。 这不是(从来没有)推荐的做法。 某些浏览器出于向后兼容的原因而支持它,但这并不意味着它将在任何版本的浏览器中继续使用。 它不是标准的,不应该使用。

直接在Javascript中直接访问单个元素的正确方法是使用getElementsById()方法。 这将为您提供当前代码所没有的良好的跨浏览器兼容性。

解决方案:

  • 步骤1:在您的name='x'旁边添加一个id='x' name='x' 对您当前正在按名称访问的任何其他元素执行相同的操作

  • 步骤2:无论您在使用x之类的变量作为元素名称的地方,都用document.getElementById('x')替换变量名称。

    是的,这要花很多时间,但这是正确的方法。

那将为您解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM