親愛なるスタックオーバーフローの友人へ
私はオンライン HTML フォームを作成しており、オプションが選択されたときにフォームの下部に会費の合計額を動的に表示するための JavaScript 関数を作成しました (この単語を正しく使用しているかどうかは完全にはわかりません)。合計料金は、メンバーシップの種類、国、および支払い方法によって異なります。私が計算していたのはメンバーシップの種類と国別の送料だけだったとき、それは完璧に機能しました (これら 2 つのオプションにはドロップダウン フォームを使用しました)。ここで、式に 3 番目の項 (支払い方法 - 小切手またはペイパルを選択できます) を追加したいと思いますが、うまくいきません。今回はラジオボタンを使用しています。
私の合計関数はこれです(「+ getPaypalfee()」がなくても問題なく動作します):
function getAmountDue()
{
var amountDue = getMembershipPrice() + getExtraPostagePrice() + getPaypalfee();
document.getElementById('amountDue').innerHTML ="Amount Due: $"+amountDue;
}
Paypal の料金を返すために私が書いた JavaScript は次のとおりです (非常に複雑になり、どこが間違っているのか、どのように再起動すればよいのかわかりません!):
var paymentmethod_Fee = new Array();
paymentmethod_Fee["cheque"]=0;
paymentmethod_Fee["paypal"]=2;
function getPaypalfee()
{
var paypalFee=0;
for (var i=0; i < document.membershipform.payment_method.length; i++)
{
if (document.membershipform.payment_method[i].checked)
{
var selectedPaymentmethod = document.membershipform.payment_method[i].value;
}
}
paypalFee = paymentmethod_Fee[selectedPaymentmethod.value];
return paypalFee;
}
ラジオ ボタンの html は次のようになります。
<p>I will make payment via: <BR>
<input type="radio" id="payment_method" name="payment_method" value="cheque" checked="yes" onchange="getAmountDue()">Cheque
<input type="radio" id="payment_method" name="payment_method" value="paypal" onchange="getAmountDue()">Paypal (Add $2)
私の論理の欠陥に対する洞察は大歓迎です! 私は JavaScript の初心者であり、ラジオ ボタンは私の宿敵のようです (ドロップダウン メニューや既に知っている方法で置き換えるのではなく、ラジオ ボタンの使用方法を学びたいと考えています)。
ありがとうございました!