我正在做一个计算器,希望根据复选框是否被选中来分配一个特定值,我的代码可能会工作,但每次我单击“计算”按钮时,它会自动选中复选框,即使它一开始没有被选中。我该怎么解决这个问题?
function run() {
var checkbox = document.getElementById('side1');
if (checkbox.checked = true) {
var output = 5;
} else {
var output = 3;
}
document.getElementById("totalvalue").innerHTML = output;
}
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<title>Document</title>
</head>
<body>
<form>
<label for="side1">Side 1</label>
<input type="checkbox" id="side1" name="side1"></input>
<input type="button" value="Calculate" onclick="run()"></input>
<span>Total: $</span>
<span id="totalvalue"></span>
<script type="text/javascript" src="tek.js"></script>
</form>
</body>
</html>
发布于 2021-10-23 03:50:00
你在tek.js
中有一个拼写错误
由于您将true
赋值给checkbox.checked
,因此它将设置复选框(类似于选中复选框),并根据您的逻辑计算5。
您可能希望设置checkbox.checked == true
以获得所需的输出。
发布于 2021-10-23 07:51:37
我现在更新了你的代码。它像预期的那样工作。由于您的if
状况,您的复选框已被选中。
我用if (checkbox.checked == true)
替换了if (checkbox.checked = true)
。它现在起作用了。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
function run() {
var checkbox = document.getElementById('side1');
if (checkbox.checked == true) {
var output = 5;
} else {
var output = 3;
}
document.getElementById("totalvalue").innerHTML = output;
}
</script>
</head>
<body>
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<title>Document</title>
</head>
<body>
<form>
<label for="side1">Side 1</label>
<input type="checkbox" id="side1" name="side1"></input>
<input type="button" value="Calculate" onclick="run()"></input>
<span>Total: $</span>
<span id="totalvalue"></span>
<script type="text/javascript" src="tek.js"></script>
</form>
</body>
</html>
</body>
</html>
https://stackoverflow.com/questions/69684865
复制相似问题