<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>
<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>
<html>
<head>
</head>
<body>
<form name="form1">
<input type="radio" name="radioqq" onClick="JavaScript:this.checked=!this.checked;" >变换 </form>
</body>
</html>
因为是radio默认单击事件里checked都是true.所以直接取反不行.
当radio没被选中的时候单击后为true直接取反的结果又是false
当radio被选中的时候第一次取反为false,单击后为true取反又是false
可以用以下代码查看:
<html>
<head>
<script language="JavaScript">
<!--
str="test"
setInterval(function(){if(str!="")clicktest.innerHTML+=str+"<br>";str=''},1000)
//-->
</script>
</head>
<body>
<form name="form1">
<input type="radio" name="radioqq" checked="checked" onmousedown='str+="onmousedown"+this.checked' onclick='str+="1onclick"+this.checked;event.returnValue=false' onmouseup="this.checked=!this.checked;str+='onmouseup'+this.checked" >变换
</form>
<div id=clicktest></div>
</body>
</html>