【发布时间】:2019-08-25 17:51:58
【问题描述】:
我需要验证我使用 Stripe 支付网关定期支付的表单。我的代码如下。
<form method="post" action="charge.php" name="renew" onsubmit="return validate();">
<input type="radio" name="package" id="package" mode="normal" duration="30" text="1 Monat" value="29.90"> 29.90 € Pro Werbeanzeige-Laufzeit: 1 Monat<br>
<input type="radio" name="package" id="package" mode="normal" duration="60" text="2 Monate" value="49.90"> 49.90 € Pro Werbeanzeige-Laufzeit: 2 Monate<br>
<input type="radio" name="package" id="package" mode="normal" duration="90" text="3 Monate" value="59.90"> 59.90 € Pro Werbeanzeige-Laufzeit: 3 Monate<br>
<input type="radio" name="package" id="package" mode="recurring" duration="30" text="Monate" value="19.90"> 19,90 € Monate<br>
<input name="oid" type="hidden" value="<?=$oid;?>" />
<input name="mode" id="mode" type="hidden" value="" />
<input name="duration" id="duration" type="hidden" value="" />
<!--<input type="submit" name="makepayment" value="Pay" > -->
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<?php echo $stripe['publishable_key']; ?>"
data-name="GOALSTART"
data-description="1 Monate"
data-panel-label="Abonnieren"
data-label="PAY NOW"
data-locale="auto">></script>
</form>
<script type="text/javascript">
function validate(){
console.log('hello');
if (document.getElementById('package').checked) {
//alert("checked submit form");
return true;
} else {
alert("Unchecked form will not be submitted");
return false;
}
}
</script>
这里我需要如果单选按钮没有选中那么表单将不会提交。但根据我的代码,它无法检查验证。
【问题讨论】:
-
您有多个元素都具有相同的 ID。 ID 应该是唯一的,所以当您
getElementById时,您只会获得找到该 ID 的第一个元素,而不是所有元素。 -
@PaulAsjes:应该先调用验证函数。
-
这无关紧要,正如所指出的,您有无效的重复 ID。大多数聪明的编辑会将此标记为问题。除了
data-locale之后的额外/不正确的结束标记“>”。 -
这可以关闭为这个问题是由一个无法再复制的问题或一个简单的印刷错误引起的。虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能帮助未来的读者。
标签: php stripe-payments