javascript 单击改变单选框状态?
我想用下面的javascript代码实现一个功能:有一个单选框按钮,点击它的时候,它的状态改变。如果原来是未选中的,点击后变为选中状态。如果原来是选中的,点击后变为未选中状态。请问下面这段代码哪错了?如何修改?谢谢!
<html>
<head>
<script language="JavaScript">
<!--
function on()
{
if(document.form1.radioqq.checked==true)
document.form1.radioqq.checked=false;
else if(document.form1.radioqq.checked==false)
document.form1.radioqq.checked=true;
}
//-->
</script>
</head>
<body>
<form name="form1">
<input type="radio" name="radioqq" onclick="on()" >变换
</form>
</body>
</html>
[解决办法]
<html> <head> <script language="JavaScript"> <!--var t = false;function on() { t = !t; document.form1.radioqq.checked = t;} //--> </script></head> <body> <form name="form1"><input type="radio" name="radioqq" onclick="on()" >变换 </form> </body> </html>
[解决办法]
应该在mousedown里操作,如果放到click里,则因为已经手动选过一次,然后代码会把结果再还原回去的。<html> <head> <script language="JavaScript"> <!-- function on() { document.form1.radioqq.checked=!document.form1.radioqq.checked} //--> </script> </head> <body> <form name="form1"> <input type="radio" name="radioqq" onmousedown="on();" >变换 </form> </body> </html>
[解决办法]
同意一楼
不过为什么不直接用checkbox?这样不是更常规一些,用户也好理解。
<html><head><script language="JavaScript"><!--function on(sender){ sender.defaultChecked = !sender.defaultChecked; // 可以省个全局变量 sender.checked = sender.defaultChecked;}//--></script></head><body><form name="form1"><input type="radio" name="radioqq" onclick="on(this)" >变换</form></body></html>