我是HTML DOM的新手。检查复选框时,我试图更改值。 所以这是我未完成的剧本:
<html>
<script type="text/javascript">
var val=12;
document.write("<p>"+val+"</p>");
function checkAddress()
{
var chkBox = document.getElementById('checkAddress');
if (chkBox.checked)
{
var val=val+2;
}
}
function checkAddress2()
{
var chkBox = document.getElementById('checkAddress2');
if (chkBox.checked)
{
var val=val+3;
}
}
function checkAddress3()
{
var chkBox = document.getElementById('checkAddress3');
if (chkBox.checked)
{
var val=val+4;
}
}
</script>
<p>Get value :<input type="checkbox" id="checkAddress" name="checkAddress" onclick="checkAddress()" value="1st"/>
Get value :<input type="checkbox" id="checkAddress2" name="checkAddress" onclick="checkAddress2()" value="2nd"/>
Get value :<input type="checkbox" id="checkAddress3" name="checkAddress" onclick="checkAddress3()" value="3rd"/>
在这里,我只想制作这个脚本:当勾选复选框时,它会更改值auto。
答案 0 :(得分:1)
首先在每次{}内声明val,这意味着价值会丢失。
其次,你没有对val做任何事情,以使它有用。
最后,您可以使用一个函数而不是三个函数来传递单击的特定复选框。
此外,如评论中所述,您不会将val分配给任何元素(使用.innerHtml,textarea等)。这意味着没有看到价值。
<html>
<script type="text/javascript">
var val=12;
function resetCheckboxes()
{
document.getElementById("checkAddress").checked=false;
document.getElementById("checkAddress2").checked=false;
document.getElementById("checkAddress3").checked=false;
}
function checkAddress(chkBox)
{
var multiplyer = 1;
if (!chkBox.checked)
multiplyer = -1;
if(chkBox.id =="checkAddress")
val=val+ (multiplyer)*2;
else if(chkBox.id =="checkAddress2")
val=val+ (multiplyer)*3;
else if(chkBox.id =="checkAddress3")
val=val+ (multiplyer)*4;
document.getElementById("displayValue").innerHTML = "Val:"+val;
}
</script>
<body onLoad="resetCheckboxes()">
<div id="displayValue">Val:12</div>
<p>Get value :<input type="checkbox" id="checkAddress" name="checkAddress" onclick="checkAddress(this)" value="1st"/>
Get value :<input type="checkbox" id="checkAddress2" name="checkAddress" onclick="checkAddress(this)" value="2nd"/>
Get value :<input type="checkbox" id="checkAddress3" name="checkAddress" onclick="checkAddress(this)" value="3rd"/>
</body>
</html>