こんにちはjavascriptの専門家!
私はここの初心者で、ウェブサイトで会費を合計するためのスクリプトを作成しようとしています(私はボランティアです)。どんな助けでも大歓迎です。
私はこのウェブサイトを使用しました:http : //www.javascript-coder.com/javascript-form/javascript-calculator-script.phtml私のhtmlを設定しました。
それはうまく機能しました(私は3つの関数を設定しました。1つは会費を計算し、もう1つは郵便料金を計算し、もう1つは未払いの合計金額です。以下にそれらを含めていませんが、正常に機能することを知っています)。
郵便料金の値(最初のドロップダウンメニューのみを使用して計算したid = country)も、2番目のドロップダウンメニュー(2番目のドロップダウンメニューのid:membership_type)の金額に依存していることに気付くまで。つまり、郵便料金は国だけでなく、会員の種類によっても決まります。メンバーシップタイプの値に応じて郵便料金の値を変更するスクリプトを設定しようとしましたが、機能しません。
あなたが言うことができるように私はコーダーではないので、私はこれを行う正しい方法を探すのに多くの時間を費やしましたが、行き詰まりになりました...。
var membership_prices = new Array();
membership_prices["regular"]=40;
membership_prices["student"]=24;
membership_prices["emeritus"]=24;
membership_prices["regularplus"]=62;
membership_prices["studentplus"]=46;
membership_prices["emeritusplus"]=46;
var extra_postage_cost = new Array();
extra_postage_cost["USA"]=0;
extra_postage_cost["Canada"]=0;
<!-- this is the part that needs work: Edited since original post -->
extra_postage_cost["Other_Country"]
if (document.getElementById('membership_type').value =="regular")
extra_postage_cost["Other_Country"]=8;
else if (document.getElementById('membership_type').value =="student")
extra_postage_cost["Other_Country"]=8;
else if (document.getElementById('membership_type').value =="emeritus")
extra_postage_cost["Other_Country"]=8;
else if (document.getElementById('membership_type').value =="regularplus")
extra_postage_cost["Other_Country"]=16;
else if (document.getElementById('membership_type').value =="studentplus")
extra_postage_cost["Other_Country"]=16;
else if (document.getElementById('membership_type').value =="emeritusplus")
extra_postage_cost["Other_Country"]=16;
else
extra_postage_cost["Other_Country"]=0;
<!-- end of what I believe needs work -->
残りのコードは次のとおりです。
function getMembershipPrice ()
{
var membershipPrice=0;
var theForm = document.forms["membershipform"];
var selectedMembership = theForm.elements["membership_type"];
membershipPrice = membership_prices[selectedMembership.value];
return membershipPrice;
}
function getExtraPostagePrice ()
{
var extraPostagePrice = 0;
var theForm = document.forms["membershipform"];
var selectedPostage = theForm.elements["country"];
extraPostagePrice = extra_postage_cost[selectedPostage.value];
return extraPostagePrice;
}
function getAmountDue()
{
var amountDue = getMembershipPrice() + getExtraPostagePrice();
document.getElementById('amountDue').innerHTML ="Amount Due $"+amountDue;
}
ドロップダウンメニュー自体には、各ドロップダウンメニューの角かっこ内にこの種のコードがあります。
select name="membership_type" id="membership_type" onchange="getAmountDue()"
select name="country" id="country" onchange="getAmountDue()"