gpt4 book ai didi

javascript - 如果未选中复选框,如何减去一个值

转载 作者:行者123 更新时间:2023-11-30 18:05:13 24 4
gpt4 key购买 nike

我制作了一个计算函数(游戏统计计算器)并且它工作正常但是当我取消选中该值时它不会减去它通过选中该框添加的值,我知道代码看起来有点难看但我我是 JS 的初学者:

function MC () {
check=document.getElementById('check').checked;


if(check){

var hp=Number(document.form.hp.value),
sp=Number(document.form.sp.value),
ea=Number(document.form.ea.value),
ed=Number(document.form.ed.value),
pa=Number(document.form.pa.value),
pd=Number(document.form.pd.value);

var hpSum = 0,spSum=0,eaSum=0,edSum=0,pdSum=0,paSum=0;

eaSum = ea + 11;
edSum = ed + 17;
pdSum = pd + 17;
paSum = pa + 11;


document.form.ea.value=eaSum;
document.form.ed.value=edSum;
document.form.pa.value=paSum;
document.form.pd.value=pdSum;
}

if(check == false){
eaSum = ea - 11;
edSum = ed - 17;
pdSum = pd - 17;
paSum = pa - 11;

document.form.ea.value=eaSum;
document.form.ed.value=edSum;
document.form.pa.value=paSum;
document.form.pd.value=pdSum;

}
};

当我取消选中 NaN(但它应该是一个数字)时它会返回。另外请不要说 MC 应该是一个项目,我只是在那里进行了初始化,因为我在这个例子中需要它。

最佳答案

我会尝试这样的事情:

function MC () {
var check=document.getElementById('check').checked;

var hp=Number(document.form.hp.value),
sp=Number(document.form.sp.value),
ea=Number(document.form.ea.value),
ed=Number(document.form.ed.value),
pa=Number(document.form.pa.value),
pd=Number(document.form.pd.value);

var hpSum = 0,spSum=0,eaSum=0,edSum=0,pdSum=0,paSum=0;

if(check){
eaSum = ea + 11;
edSum = ed + 17;
pdSum = pd + 17;
paSum = pa + 11;
} else {
eaSum = ea - 11;
edSum = ed - 17;
pdSum = pd - 17;
paSum = pa - 11;
}

document.form.ea.value=eaSum;
document.form.ed.value=edSum;
document.form.pa.value=paSum;
document.form.pd.value=pdSum;
}

代码中的一般问题:

  • 检查局部变量遗漏了var;
  • 只有当检查变量为真时,其他局部变量才被初始化这导致您报告的 NaN 值;
  • 如果你必须检查一个条件和他的对立面,最好是if(condition)/else 形式在 if(condition)/if(!condition) 一个;
  • 要挑剔:你不在你的函数中返回任何值,只是设置 dom 的一些值元素
  • 您声明了 spSum 局部变量,将其设置为 0 并且不使用它。
  • hpSum 也已声明但未使用。

关于javascript - 如果未选中复选框,如何减去一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15977293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com