我想更改复选框中的变量,使if语句在不重新加载页面的情况下进行计算,但我正在努力……还在学习中,抱歉!
相关代码如下:
<!--Variable declaration-->
<script type="text/javascript"> var lettuce = false; </script>
<!--The following line is within a form-->
<input type="checkbox" onclick="lettuce=true" name="food" value="lettuce" /> Lettuce<br />
<--the if statement-->
<script type="text/javascript">
if (lettuce == true) {
document.write("45");
}
</script>
谢谢!
发布于 2011-07-29 19:12:38
<input type="checkbox" onchange="lettuce=this.checked; recompute();" name="food" value="lettuce" /> Lettuce<br />
<script type="text/javascript">
function recompute()
if (lettuce == true) {
document.write("45");
}
}
</script>
首先,您需要onchange
事件,该事件在checkbox的状态更改时调用。this.checked
根据该状态返回布尔值(true或false)。其次,当页面加载该脚本时,if
语句只被处理一次。将其放入函数中以再次调用它。
发布于 2011-07-29 19:10:34
将if语句包装到一个函数中,然后在onclick事件中调用该函数。
<!--Variable declaration-->
<script type="text/javascript"> var lettuce = false; </script>
<!--The following line is within a form-->
<input type="checkbox" onclick="my_function();" name="food" value="lettuce" /> Lettuce<br />
<!--the if statement-->
<script type="text/javascript">
function my_function() {
if (lettuce == true) {
lettuce = false;
} else {
lettuce = true;
document.write("45");
}
}
</script>
发布于 2011-07-29 19:11:21
首先,您的逻辑永远不会将lettuce设置为false。我理解我们应该吃更多的生菜,但我们仍然应该给用户一个选择;)
其次,试着把你的Javascript放在html之外:
<!--Variable declaration-->
<script type="text/javascript"> var lettuce = false; </script>
<!--The following line is within a form-->
<input type="checkbox" id="lettuce" name="food" value="lettuce" /> Lettuce<br />
<script type="text/javascript">
document.getElementById('lettuce').addEventListener('click',checkLettuce,false);
function checkLettuce(){
if (document.getElementById('lettuce').checked === true) {
lettuce = true;
document.write("45");
}
else
{
lettuce = false;
}
}
</script>
https://stackoverflow.com/questions/6877826
复制