需要将变量传递给函数

我试图将一个变量传递给一个我认为调用另一个函数的函数(我认为),但是我遇到了问题。 我需要在第二个函数中使用的变量是productid,但是我尝试过的几种方法都没有用。 要么修复javascript或Jquery将是伟大的!

这是我需要变量的行

var error_url = '/ProductDetails.asp?ProductCode' + productid; 

这是变量源于……

 var productid = form.elements['ProductCode'].value; 

这是整个js代码

 function addToCart2(form, button) { var softAdd = true; var productid = form.elements['ProductCode'].value; var qstr; var bttnName = button.name; button.disabled = true; if (form.elements['ReturnTo']) { form.elements['ReturnTo'].value = ""; } qstr = serialize(form, bttnName + '.x', '5', bttnName + '.y', '5'); sendAjax('POST','/ProductDetails.asp?ProductCode=' + productid + '&AjaxError=Y', qstr , retrieveProductError2 ,displayServerError,false); button.disabled = false; return false; } function retrieveProductError2(result, statusCode) { var ele = document.getElementById('listOfErrorsSpan'); var errorIndex = result.indexOf(''); var productIndex = result.indexOf('') if (errorIndex > -1 && productIndex == -1) { var error_url = '/ProductDetails.asp?ProductCode' + productid; window.location = error_url; } if (errorIndex != -1) { //ele.innerHTML = result.slice(errorIndex + 11, result.indexOf('')); } else { ele.innerHTML = ""; if (productIndex == -1) { sendAjax('GET','/AjaxCart.asp?GetIndex=True', '', showCart, null, false); } else { productIndex = result.slice(productIndex + 14, result.indexOf('')); sendAjax('GET','/AjaxCart.asp?Index=' + productIndex, '', showCart, null, false); } } 

}

在传递retrieveProductError2作为sendAjax调用的错误回调的地方,你可以传入:

 function(result, statusCode) { retreiveProductError2(result, statusCode, productId);} 

然后更改retreiveProductError2函数的定义以接受其他参数。

最简单的方法是将变量声明移到方法之外。 因此,在addToCart2方法之外更改产品ID的声明。 所以在这种方法之外你这样做:

 var product_id; 

然后在你的方法中从product_id中删除var,它只是一个赋值而不是声明。