输入onchange问​​题:'重新'一个函数

时间:2011-02-21 11:05:14

标签: javascript ajax xmlhttprequest

我正在通过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);
}

}

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

如果您遇到此类事件的问题,那么我强烈建议使用一个好的AJAX框架,如jQuery,MooTools,Prototype,YUI,Dojo等。有很多好的库可以为您抽象XMLHttpRequest API并且还可以关心浏览器的不一致性。如果你觉得不舒服,就没有必要重新发明轮子。