日期:2014-05-16  浏览次数:20300 次

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 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>