【问题标题】:Transmitting input tag value in to a JavaScript function将输入标签值传输到 JavaScript 函数
【发布时间】:2019-12-30 07:05:52
【问题描述】:

我创建了一个变量来携带发送到结帐页面的金额的值。结帐体验似乎无法识别变量。

 <input type="number" id="challenge_stake" name="stake"  required = "true" />     
<button type="button"  data-toggle="modal" data-target="#myModal2" onclick="myFunction();">Pay Now</button> 
 ...  
         <div id="paypal-button-container">

         </div>

         <input name="forPaypal" type="number" value="0" id="forPaypal">           

<script>
    var x = parseFloat(document.getElementById('forPaypal').value);     
    paypal.Buttons({
        // Set up the transaction
        createOrder: function(data, actions) {
            return actions.order.create({
                purchase_units: [{
                    amount: {
                        value: x
                    }
                }]
            });
        }).render('#paypal-button-container');
</script>

<script> function myFunction() {
            var amount = 
parseFloat(document.getElementById('challenge_stake').value);         
document.getElementById('forPaypal').value = amount;
    }

</script>

【问题讨论】:

    标签: javascript html dom paypal


    【解决方案1】:

    根据您的代码,x 的值将始终为0。将您的 createOrder 函数更改为以下:

    
    createOrder: function(data, actions) {
       return actions.order.create({
           purchase_units: [{
               amount: {
                   value: parseFloat(document.getElementById('forPaypal').value)
               }
           }]
       }
    }
    
    

    【讨论】:

    • 智能回答戈帕尔!为什么它现在有效?是因为 javascript 的动态类型特性还是什么?
    • 是的,在您之前的代码中,x 的值是在您的页面加载位置计算的,但在新代码中,它会在您每次单击 Paypal 按钮时进行计算。
    • 我同意并且我考虑过,但是调用了 myFunction() 函数,我认为它会在加载时设置 forPaypal 输入标签的值。
    • 它改变了输入字段的值而不是x的值,而你使用的是x。
    • 这就是你使用完整表达式的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 2016-04-11
    • 2011-12-04
    • 2011-12-18
    • 2023-03-22
    • 2014-06-28
    • 1970-01-01
    相关资源
    最近更新 更多