javascript 单击改变单选框状态?解决办法
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>
------解决方案--------------------
我想用下面的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 code
<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>
------解决方案--------------------
- HTML code
应该在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 code
<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>