需要将变量传递给函数

时间:2010-07-09 16:01:48

标签: javascript jquery

我试图将一个变量传递给一个我认为调用另一个函数的函数(我认为),但是我遇到了问题。我需要在第二个函数中使用的变量是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('<carterror>');
var productIndex = result.indexOf('<ProductIndex>')
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('</carterror>'));
}
else {
    ele.innerHTML = "";
    if (productIndex == -1) {
    sendAjax('GET','/AjaxCart.asp?GetIndex=True', '', showCart, null, false);
    }
    else {
    productIndex = result.slice(productIndex + 14, result.indexOf('</ProductIndex>'));
    sendAjax('GET','/AjaxCart.asp?Index=' + productIndex, '', showCart, null, false);
    }
}

}

2 个答案:

答案 0 :(得分:2)

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

var product_id;

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

答案 1 :(得分:1)

如果你将retrieveProductError2作为sendAjax调用的错误回调传递,你可以传入:

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

然后更改retreiveProductError2函数的定义以接受附加参数。