Javascript 如何从switch语句中输出所需的成本
我不确定我做错了什么。它说我的变量没有定义,但我是在js文件的顶部定义的。我认为我所有的逻辑都是正确的,但有些地方不对劲,我还没弄明白是什么。我只是在这里添加了更多的文本,这样我就可以用更新的代码编辑这个问题了。根据需要删除最后一位。谢谢Javascript 如何从switch语句中输出所需的成本,javascript,Javascript,我不确定我做错了什么。它说我的变量没有定义,但我是在js文件的顶部定义的。我认为我所有的逻辑都是正确的,但有些地方不对劲,我还没弄明白是什么。我只是在这里添加了更多的文本,这样我就可以用更新的代码编辑这个问题了。根据需要删除最后一位。谢谢 function calculate() { document.getElementById("cost").innerHTML = "Cost: " var cost = Number(document.getElementById("ty
function calculate() {
document.getElementById("cost").innerHTML = "Cost: "
var cost = Number(document.getElementById("type").value);
var years = Number(document.getElementById("years").value);
if (years > 1) {
var discount = cost * 0.20
cost -= discount ; // 20%
document.getElementById("cost").innerHTML += cost;
} else {
document.getElementById("cost").innerHTML += cost;
}
return false;
}
我做了两个更改,它运行时没有错误:
var cost = parseInt(document.getElementById("cost).value);
应该有另一个“后成本”,并且:
if (type && type.value && years && (years > 0)) {
应为年。值>0
然后将开关切换到:
switch (type.value) {
而有关个案则包括:
case 'basic':
case 'premium':
等等
函数计算(){
//严格要求:
"严格使用",;
//用于存储总成本的变量:
风险价值成本;
//获取对表单元素的引用:
var type=document.getElementById('type');
var years=document.getElementById('years');
//TODO将年份转换为数字:
//检查有效数据:
if(type&&type.value&&years&&years.value>0)){
//TODO添加开关语句以使用“type”值确定基本成本
开关(类型值){
案例“基本”:
window.console.log(“基本-$10.00”);
打破
“保险费”一案:
window.console.log(“特优-$15.00”);
打破
“黄金”一案:
window.console.log(“黄金-$20.00”);
打破
“白金”一案:
window.console.log(“白金-$25.00”);
}
//TODO更新成本以考虑年数:
var cost=parseInt(document.getElementById(“cost”).value);
//多年折扣:
如果(年数>1){
成本-=(成本*20);//20%
}
//TODO将“costElement”的value属性更新为计算成本
var costElement=document.getElementById('cost');
}否则{//显示错误:
document.getElementById('cost')。value='请输入有效值';
}
//返回false以防止提交:
返回false;
}
函数init(){
"严格使用",;
//提交表单时调用名为calculate()的函数
document.getElementById('theForm')。onsubmit=calculate;
}
window.onload=init;
58123301
创建您的会员资格
类型
基本-10.00美元
保费-$15.00
黄金-20.00美元
白金-25.00美元
年
成本
我编写了您的代码并修复了一些问题,希望这能帮助您:
函数计算(){
document.getElementById(“成本”).innerHTML=“成本:”
var成本=编号(document.getElementById(“type”).value);
var years=数字(document.getElementById(“years”).value);
如果(年数>1){
风险价值折扣=成本*0.20
成本-=折扣;//20%
document.getElementById(“成本”).innerHTML+=成本;
}否则{
document.getElementById(“成本”).innerHTML+=成本;
}
返回false;
}
创建您的会员资格
类型
基本-10.00美元
保费-$15.00
黄金-20.00美元
白金-25.00美元
年
成本:
在执行切换(成本)之前,您从不向成本分配任何内容
。它应该将其值与html类型选项值中列出的成本进行比较。什么是type.basic
,type.premium
,等等?type
是一个DOM元素,它没有这些属性。我想你要做的是切换(type.value)
和case”basic“:
,案例“premium”:
等。应该是var cost=parseInt(document.getElementById(“cost”).value)
cost*20
应该是cost*0.20
这不会正确地将输出输入到成本文本字段,如果超过一年,也不会计算20%的折扣。@RachelWillows,如果你不介意的话,请您描述清楚您的要求,我很乐意为您提供帮助:)年值的目的是什么?@ShayaUlman“填写此表格以计算您的会员资格。如果您注册超过一年,可享受20%的折扣”。费用必须反映在html页面的禁用文本字段中。这是否有帮助?例如,Basic-$10.00的20%折扣?然后你必须将价格存储在变量中,我无法得到你的答案。您介意提供一个运行的代码片段吗?是的,没问题-我复制了您的代码并进行了上述更改。“无法得到你的答案”-发生了什么事?啊,我明白了。我需要在禁用“成本”输入字段而不是日志中显示成本。此外,如果所选类型输入的时间超过一年,则假定为20%的折扣。还在努力。