javascript函数在IE11中不起作用
这是在谷歌chrome中工作的脚本,但在IE 11中不工作,为什么javascript函数在IE11中不起作用,javascript,php,internet-explorer,Javascript,Php,Internet Explorer,这是在谷歌chrome中工作的脚本,但在IE 11中不工作,为什么 <script type="text/javascript"> window.onload = function () { var ammount = document.getElementById('ammount'); var price = document.getElementById('price'); var vatrate = document.getElementById('vatrate'); };
<script type="text/javascript">
window.onload = function () {
var ammount = document.getElementById('ammount');
var price = document.getElementById('price');
var vatrate = document.getElementById('vatrate');
};
function UpdateTotal() {
var total = parseFloat(price.value) * parseFloat(ammount.value);
var totalvat = (parseFloat(price.value) * parseFloat(ammount.value))*(1+(parseFloat(vatrate.value)/100));
parseFloat(document.getElementById('mezisoucet').value = total);
parseFloat(document.getElementById('mezisoucetdph').value = totalvat);
};
</script>
<form method="post" action="">
<td><input type="date" name="date" value="2014-02-24"></td>
<td>
<input type="text" name="name" value="" autofocus="autofocus">
<br>
<input type="text" name="description" value="">
</td>
<td><input type="text" name="sku" value="" style="width: 100%;"></td>
<td><input type="text" name="ammount" id="ammount" value="1" onchange="UpdateTotal()" style="width: 100%; text-align: right;"></td>
<td><input type="text" name="mu" value="piece" style="width: 100%; "></td>
<td><input type="text" name="price" id="price" onchange="UpdateTotal()" value="" style="width: 100%; text-align: right;"></td>
<td><input type="text" name="mezisoucet" id="mezisoucet" readonly="" value="" style="width: 100%; "></td>
<td>
<select name="vatrate" id="vatrate" class="selectinput" style="width: 100%;" onchange="UpdateTotal()">
<option value="21">21 %</option>
<option value="15">15 %</option>
<option value="0" selected="">0 %</option>
</select>
</td>
<td><input type="text" name="mezisoucetdph" id="mezisoucetdph" readonly="" value="" style="width: 100%; text-align: right;"></td>
<td style="padding: 0px; vertical-align: middle; text-align: center;">
<input type="image" src="./img/ico/1385010425_save.png" name="addOrderreceivedwwwItem" value="Save" title="Save">
</td>
window.onload=函数(){
var amount=document.getElementById('amount');
var price=document.getElementById('price');
var-vatrate=document.getElementById('vatrate');
};
函数UpdateTotal(){
var total=parseFloat(price.value)*parseFloat(amount.value);
var totalvat=(parseFloat(price.value)*parseFloat(amount.value))*(1+(parseFloat(vatrate.value)/100);
parseFloat(document.getElementById('mezisoucet')。value=total);
parseFloat(document.getElementById('mezisoucetdph')。value=totalvat);
};
21%
15%
0%
在Google Chrome OK中,在IE11调试程序错误中:“对象价格未定义”
此函数声明一些变量,然后立即丢弃它们,因为它们不再被任何对象引用
看起来您的意图是将它们定义为全局变量,在这种情况下,您应该使用:
window.ammount = document.getElementById('ammount');
// IMPORTANT: Don't use var to declare object properties
应该注意的是,许多浏览器都会自动将元素ID转换为全局变量,这就是为什么具有相同ID的多个元素是一场等待发生的灾难的原因之一。就你而言。。。如果您只有一行,那么所有在PHP中定义的id
s都将被复制,我会非常惊讶
Chrome可以容忍这种情况,只使用具有给定ID的第一个元素作为自动全局属性。但是,IE会将自动全局属性设置为包含所有此类元素的节点列表,这会导致意外结果,尤其是当您使用相同名称的变量时
总之,对ID要更加小心 哦,别这样。帮我们一点忙。你犯了什么错误?您是否尝试过设置断点以查看发生了什么?您所说的“不工作”是什么意思?在脚本末尾,您有一个
代码>太多;)更新了IE11understand中的错误语句,我删除了php代码
window.ammount = document.getElementById('ammount');
// IMPORTANT: Don't use var to declare object properties