[英]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> <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.