Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t将变量移到要使用的函数之外_Javascript - Fatal编程技术网

Javascript Can';t将变量移到要使用的函数之外

Javascript Can';t将变量移到要使用的函数之外,javascript,Javascript,我真的很挣扎。我创建了一个表格,根据帐篷里有多少人以及他们是否用信用卡支付,来计算这个人所欠的钱。金额将根据所选内容进行更新。当用户提交时,应将其重定向至PayPal,url末尾显示总金额,即: PayPal.me/240英镑或PayPal.me/600英镑 问题是我的price变量不在设置重定向的其他函数的范围内,并且price金额永远不会到达重定向 这就是我尝试过的: HTML: 我建议改为这样做 function pricecalc() { var myprice; var a =

我真的很挣扎。我创建了一个表格,根据帐篷里有多少人以及他们是否用信用卡支付,来计算这个人所欠的钱。金额将根据所选内容进行更新。当用户提交时,应将其重定向至PayPal,url末尾显示总金额,即:

PayPal.me/240英镑或PayPal.me/600英镑

问题是我的price变量不在设置重定向的其他函数的范围内,并且price金额永远不会到达重定向

这就是我尝试过的:

HTML:


我建议改为这样做

function pricecalc() {
  var myprice;
  var a = document.getElementById("field_0");
  var quantity = a.value.substring(0, 1);
  var b = document.getElementById("field_1");
  var type = b.value;

  if (quantity == '2') {
    var rate = '120';
  } else if (quantity == '3') {
    var rate = '110';
  } else {
    var rate = '100';
  }

  myprice = rate * quantity;
  if (type == 'Credit card + 3.4%') {
    myprice = myprice * 1.034;
  }

  var price_each = (myprice / quantity);
  document.getElementById("cost").innerHTML = myprice;
  document.getElementById("costeach").innerHTML = price_each;

  return myprice;
}
然后

function PHPFMG( formID ){
    var myprice = pricecalc();
    var redirect = 'https://www.paypal.me/tim/' + myprice;
}

这样您就不会污染全局范围

我建议您这样做

function pricecalc() {
  var myprice;
  var a = document.getElementById("field_0");
  var quantity = a.value.substring(0, 1);
  var b = document.getElementById("field_1");
  var type = b.value;

  if (quantity == '2') {
    var rate = '120';
  } else if (quantity == '3') {
    var rate = '110';
  } else {
    var rate = '100';
  }

  myprice = rate * quantity;
  if (type == 'Credit card + 3.4%') {
    myprice = myprice * 1.034;
  }

  var price_each = (myprice / quantity);
  document.getElementById("cost").innerHTML = myprice;
  document.getElementById("costeach").innerHTML = price_each;

  return myprice;
}
然后

function PHPFMG( formID ){
    var myprice = pricecalc();
    var redirect = 'https://www.paypal.me/tim/' + myprice;
}

通过这种方式,您不必设置全局范围

如何/何时调用
PHPFMG()
?PHPFMG中的var重定向值是多少?它是“”?@dsch是的,它是未定义的,但它应该是240/500 etcAs Xatenev aksed,最好是我们能看到如何以及何时调用PHPFMG。如何/何时调用
PHPFMG()?它是“”?@dsch是的,它是未定义的,但它应该是240/500 etcAs Xatenev-aksed,如果我们能看到如何以及何时调用PHPFMG,那就最好了。