仅在选中时调用复选框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅在选中时调用复选框相关的知识,希望对你有一定的参考价值。
我有一个用按钮切换的复选框,但我还需要将它的值添加到方程式中,只要检查它。我现在得到的是这个,但无论是否选中复选框,它都会添加
<html>
<head>
<script language=javascript>
function validate(chk){
if (chk.checked == 1)
chk.checked = 0;
else
chk.checked = 1;
}
</script>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<form name="myform">
<input type="checkbox" name="ghj" id="ghj" value="100000">testing sheep<br>
<input type="button" class="button-primary widget-control-save" name="Check_All" value="Check All" onmouseout="compute(this.form)" onClick="validate(ghj)">
<input type="text" id="rslt" name="rslt">
</form>
<script type="text/javascript">
<!-- hide this script from old browsers
function compute(form)
{
var test = parseInt(document.getElementById('ghj').value, 10) || 0;
f = (test + 10);
document.getElementById('rslt').value = f;
}
// done hiding from old browsers -->
</script>
</body>
</html>
if ... else语句可能有效,但如果我有一个更长的形式,意味着数百种可能性,我想要一个更有效的方式..
答案
如果您只想计算选中的复选框。然后做这样的事情
function compute(frm){
var test = 0;
for(var i = 0; i < frm.elements.length; i++){
if(frm.elements[i].type == 'checkbox'){
if(frm.elements[i].checked){ //Do something if checkbox is checked
test += parseInt(frm.elements[i].value);
}
}
}
document.getElementById('rslt').value = test;
}
请参阅示例代码jsfiddle.net/5u5TH
另一答案
我花了一点时间弄清楚你在问什么,但我想你想做这样的事情:
function compute(form)
{
var checkbox = document.getElementById('ghj');
if(checkbox.checked) {
var test = parseInt(checkbox.value, 10) || 0;
f = (test + 10);
document.getElementById('rslt').value = f;
}
}
以上是关于仅在选中时调用复选框的主要内容,如果未能解决你的问题,请参考以下文章