【发布时间】:2017-10-02 03:07:34
【问题描述】:
我正在创建一个动态的 Stripe 结帐表单。我希望表单根据单选按钮选择进行更改。这是我到目前为止的代码。我删除了一些对这个问题来说不必要的条带代码,但它就在那里并且对我有用。
<script src="https://checkout.stripe.com/checkout.js"></script>
<form id="payment-form" method="post" action="procedures/charge.php" >
<input id="monthly" type="radio" name="plan-id" value="monthly1" > $10/month<br>
<input id="annual" type="radio" name="plan-id" value="annual1" > $89/year<br>
<button type="submit" id="customButton">Sign Up</button>
</form>
<script>
document.getElementById('customButton').addEventListener('click', function(e) {
//This is where I'm having my problem
var plan = document.querySelector('input[name = "plan-id"]:checked').value;
if(plan = 'monthly1') {
var description = 'Monthly Subscription';
var amount = 1000;
}else if(plan = 'annual1') {
var description = 'Annual Subscription';
var amount = 8900;
}
// Open Checkout with further options:
handler.open({
name: 'Your Strength Coach',
description: description,
amount: amount,
email: '<?php echo $user['email'] ?>',
});
e.preventDefault();
});
</script>
当我尝试测试检查哪个收音机以在 handler.open 部分中分配变量时,我的问题出现了。我已经在任一输入中添加了“选中”,代码使用该默认值。但如果我选择“选中”项目以外的其他内容,它不会注册更改。
例如,如果monthly1 收音机有checked 属性,我无法让代码注意到我选择了year1 选项并使用if 语句的那部分。
有没有办法确定在操作的这个阶段选择了哪个按钮?
【问题讨论】:
-
if(plan = 'monthly1')应该有===或==比较运算符,您正在使用赋值运算符... -
谢谢。那行得通。我是个白痴……
标签: javascript forms stripe-payments