我正在通过AJAX XmlHttp对象将产品及其单位添加到购物车。它做的一切都很好但是我在执行第一个成功的XmlHttp请求时遇到了问题:如果我在输入上重新更改单位值,它会重新激活该函数,停留在readyState 1上。
就像它有onchange但我没有显式调用onchange事件的函数,我已经检查过没有脚本引用输入id。关于从哪里开始寻找问题的任何想法?
我有一张表格:
<form id="add-basket" name="add-basket">
<input id="udsn" name="udsn" class="add-units" type="text" value="1" />
<input type="button" id="prod-add" alt="Comprar" onclick="addProduct('<?=$product_id?>',1)"/>
一个功能:
function addProduct(product,bsopt){
if (xmlHttp.readyState==4 || xmlHttp.readyState==0){
var uds = document.getElementById("udsn").value;
xmlHttp.open("GET", "addCart_process.php?prod=" + product + "&bso=" + bsopt + "&ud=" + uds, true);
xmlHttp.onreadystatechange = handleProductAdd;
xmlHttp.send(null);
}
}
非常感谢提前。
答案 0 :(得分:1)
如果您遇到此类事件的问题,那么我强烈建议使用一个好的AJAX框架,如jQuery,MooTools,Prototype,YUI,Dojo等。有很多好的库可以为您抽象XMLHttpRequest API并且还可以关心浏览器的不一致性。如果你觉得不舒服,就没有必要重新发明轮子。