创建一个javascript,根据html表单中选中的单选框创建动态合计
Creating a javascript that creates a dynamic total depending on radio box checked in html form
最亲爱的堆叠者朋友,
我正在创建一个在线html表单,并创建了一个javascript函数,以便在选择选项时在表单底部动态显示(不完全确定我是否正确使用了这个词)应付的会员费总额。总费用取决于会员类型、国家和付款方式。当我只计算会员类型和根据国家/地区的邮费时,它运行得很好(我使用了这两个选项的下拉表)。现在我想把第三项添加到等式中(付款方式——可以选择支票或贝宝),但我无法让它发挥作用。这次我用的是单选按钮。
我的合计函数是这样的(如果没有"+getPaypalfee()",它工作得很好):
function getAmountDue()
{
var amountDue = getMembershipPrice() + getExtraPostagePrice() + getPaypalfee();
document.getElementById('amountDue').innerHTML ="Amount Due: $"+amountDue;
}
我写的返回贝宝费用的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新手,单选按钮似乎是我的克星(我想学习如何使用它们,而不是用下拉菜单或我已经知道如何使用的东西来代替它们)。
谢谢!
数组不应用于创建项之间的映射。你要找的是一个物体:
var fees = {
cheque: 0,
paypal: 2
};
至于你的错误,就在这里:
paypalFee = paymentmethod_Fee[selectedPaymentmethod.value];
paymentmethod_Fee
已经是一个字符串。它没有value
属性。
不要使用多个具有相同id
的元素。这样做会产生故障超过9000个故障所以,不要使用重复的id
s。只是不要。这是网络开发的格言。它对你很有用。严格遵照执行。或者,您将出现故障我确信您不希望出现故障消除故障不要使用重复的id
s。
(太长了,读不下去了前一段:始终具有唯一的id
,否则会出现故障。)
您应该将radio
按钮包装在id为payment_methods
的div
中。然后,使用document.getElementById("payment_methods").childNodes[i]
访问每个连续的按钮。
(顺便说一句,具有相同name
的两个radio
按钮是互斥的,因此按钮应该具有相同的name
秒但不同的id
秒。)
您正确使用checked
。正是您访问元素的方式导致了故障
希望这能消除你的故障
- 选中单选框时将属性添加到输入字段
- 选中单选框时禁用输入框
- 基于单选框更新页眉,选中并选择输入文本
- 选中单选框时,将文本添加到文本框中
- 如果选中单选框,则将值添加到合计
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- html/jquery输入类型:单选框中的文本不起作用
- 按字母顺序对输入单选框进行排序
- 使用JQuery启用输入字段的单选框
- 在JavaScript中动态创建复选框
- 如果所有单选框在jQuery中都有一个选择,则显示一个元素
- 如何在应用jquery buttonset()后取消选中所有具有相同类名的单选框
- 默认情况下无法预先选择所需的单选框
- 当选择特定的单选框时,使用jquery禁用循环中的文本框
- Angular,获取Ng中复选框(或单选框)所需的Ng重复
- 如何创建单选框文本库
- 基于表中的列动态创建复选框
- 动态创建复选框单击事件,选择整行,而不仅仅是jquery数据表中的复选框.为什么呢?
- 如何创建复选框的角度模式表单检查表
- 创建一个javascript,根据html表单中选中的单选框创建动态合计