Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript函数在IE11中不起作用_Javascript_Php_Internet Explorer - Fatal编程技术网

javascript函数在IE11中不起作用

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'); };

这是在谷歌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');
};

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