Javascript 无法获取输入标记值
我创建了一个变量来携带发送到结帐页面的金额值。似乎签出体验没有识别变量Javascript 无法获取输入标记值,javascript,html,dom,paypal,Javascript,Html,Dom,Paypal,我创建了一个变量来携带发送到结帐页面的金额值。似乎签出体验没有识别变量 <input type="number" id="challenge_stake" name="stake" required = "true" /> <button type="button" data-toggle="modal" data-target="#myModal2" onclick="myFunction();">Pay Now</button> ...
<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>
根据您的代码,x的值将始终为0。将createOrder函数更改为以下内容:
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: parseFloat(document.getElementById('forPaypal').value)
}
}]
}
}
聪明的回答,戈帕尔!为什么它现在能工作?这是因为javascript的动态键入特性还是什么?是的,在您以前的代码中,x的值是在加载页面的位置计算的,但在新代码中,每次单击Paypal按钮时,x都会计算。我同意,并且我认为,但是调用了myFunction函数,我假设它会在加载时设置forPaypal输入标记的值。它会更改输入字段的值,而不是x的值,因此您使用了x。这就是为什么您使用完整表达式的原因。