我在购物车中有许多选择元素,当选择元素更改选项时,将侦听onclick事件,并执行ajax函数displayCart。
<select name="price">
<option value="peryear" onclick="dispCart('y',2,1100);">1100 Dollar/year</option>
<option value="pertrimester" onclick="dispCart('t',2,300);" selected>300 Dollar/3 months</option>
<option value="permonth" onclick="dispCart('m',2,120);">120 Dollar/month</option>
</select>
这是ajax函数:
function dispCart(b,c,price){
var req1=new getXHR();
var altr=Math.random();
var url="cart.php?c="+altr+"&b="+b+"&c="+c+"&price="+price;
req1.open('GET',url,true);
req1.onreadystatechange=function(){
if(req1.readyState==4){
if(req1.status==200){
document.getElementById("cart").innerHTML=req1.responseText;
}
}
};
req1.send(null);
}
cart.php是一个控制器,它使用一些函数连接到数据库,更改购物车数据(例如从每月付款改为每年付款)然后刷新购物车并显示包含更改的新购物车。
的问题是,这个推车工作很好与FF,但与IE和chrome它不执行的discart javascript函数。
我不知道为什么??提前感谢。
在IE中,您不能在<option>
元素上绑定事件。您应该将事件绑定到<select>
元素,然后找出选择了哪个选项。
下面是一个使用onchange
的例子
select
用onchange
, option
用onclick