Parse Var&执行计算

时间:2015-05-08 15:11:48

标签: javascript jquery paypal

我遇到了表单中的一些代码问题。我试图从用户(美元金额)获取值并将其解析为整数。然后我需要执行计算以增加2.9%并且还将.30添加到产品中。

似乎问题在于解析...因为我在控制台中收到错误$sendAmount.val is not a function [当我输入$sendAmount.val()]时。但是,如果我提交$userAmount.val(),它将返回用户提交的美元金额(以字符串形式)。

请注意,$userAmount是用户输入的内容 $sendAmount是发送给Paypal的内容。

任何对此的帮助都会非常感激......我一直试图让这个工作起来并且一直空着。我对parseInt没有多少经验。

这是我的代码:



  var $sendAmount = $("#payAMT");
var $userAmount = $("#valInput");

//Update the Amount
function $convFee() {
  $sendAmount = parseInt($userAmount) * 1.029 + 0.30;
};

$agree.keyup($convFee);
$agree.click($convFee);

<div id="paypalWrap">
  <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="new">
    <input type="hidden" name="amount" id="payAMT" value="0.00">
    <input type="hidden" name="currency_code" value="USD">
    <p>
      <label for="os0" type="hidden" name="on0" value="Name:">Name:</label>
      <input type="text" name="os0" maxlength="30" id="name">
    </p>
    <p>
      <label for="os1" type="hidden" name="on1" value="Invoice Number:">Invoice Number:
        <br />
        <i>(Reference must be correct to get credit applied to your account)</i>
      </label>
      <input type="text" name="os1" maxlength="50" id="invoice">
    </p>
    <p>
      <label for="os2" type="hidden" name="on2" value="Amount:">Amount being paid:</label>
      <input type="text" name="os2" id="valInput" maxlength="15" placeholder="ex: 10.00 (not $10.00)">
    </p>
    <p>
      <input type="checkbox" name "agreeCheck" id="agreeCheck" />
      <label for="agreeCheck" type="hidden" name="agreeStatement" id="agreeStatement">
        I understand and accept that I will be charged a convenience fee ($0.30 + 2.9% of transaction).
      </label>
    </p>

    <input id="send" type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_paynowCC_LG.gif" disabled="disabled" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
  </form>
</div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

此行有两次相同的问题:

$ sendAmount = parseInt($ userAmount)* 1.029 + 0.30;

这两个变量都是DOM元素,而不是数字。您需要将它们作为项目进行交互,特别是它们的值元素(可以解析为数字的字符串)。

您需要从第一个值中检索值,并设置第二个值,例如:

$ sendAmount.val(parseInt($ userAmount.val)* 1.029 + 0.30);

请参阅http://api.jquery.com/val/