Maison > Article > interface Web > 求助HTML高手radio如何响应失去选中事件_html/css_WEB-ITnose
换个思路。如果改选B,那么会触发事件。这样同样可以监听A撤消啊
试试 onclick
用一个全局变量记住当前选项
<html> <script language="javascript" defer="defer"> var cur;function check(){ var val; var rds = document.forms[0].rd; for(var i=0;i<rds.length;i++){ if(rds[i].checked){ val = i; break; } } if(val != cur){cur = val; alert("changed")}} window.onload=function(){ var rds = document.forms[0].rd; for(var i=0;i<rds.length;i++){ if(rds[i].checked){ cur = i; break; } }}</script> <body><form><input type="radio" name="rd" value="0" checked="checked" onclick="check()"> 0<br><input type="radio" name="rd" value="1" onclick="check()"> 1<br><input type="radio" name="rd" value="2" onclick="check()"> 2<br></form></body> </html>
<div id=radios> a <input type=radio name=a value=a > b <input type=radio name=a value=b> c <input type=radio name=a value=c></div><script language="javascript"><!--var obj=document.getElementById("radios").getElementsByTagName("input")for (var i=0;i<obj.length;i++){(function(k){obj[i].onclick=function(){cha(k)}})(i)}var lastChecked=nullfunction cha(k){if (lastChecked==k)returnif (lastChecked!=null){ //处理obj[lastChecked] alert("上次选中:"+lastChecked)}lastChecked=k//处理obj[lastChecked]alert("本次选中:"+lastChecked)}//--></script>
使用临时变量是不行的
因为页面上的选择题的数量,以及选择题和填空题
以及题目之间的跳转关系
比如:单选某一选项要跳转到哪个题
选择题之间选项的组合,选择题与填空题之间的组合
等等都是用户在设计试卷的时候指定的
不是写死在页面上的
变量可以动态创建,或用数组,不需要写死。
路过 学习
用一个全局变量记住当前选项
HTML code
<script> <br /> var cur; <br /> <br /> function check(){ <br /> var val; <br /> var rds = document.forms[0].rd; <br /> for(var i=0;i<rds.length;i++){ <br /> if(rds[i].checked){ <br /> val = i; <br /> break; <br /> } <br /> } <br /> if(val != cur){cur = val; alert("changed")} <br /> } <br /> window.onload=function(){ <br /> v… <br /> <br /> 正解! </script>
打酱油
失去选中,也即失去焦点,那么失去焦点的事件可以在对象中这样响应
...onblur="javascript:workFunName(参数);"...
失去选中,也即失去焦点,那么失去焦点的事件可以在对象中这样响应
...onblur="javascript:workFunName(参数);"...
绝错~
你选A选项以后,再去填一个空
然后回来看这个选择题,改成了选B,此时,A失去选中,但不会触发失去焦点事件
我想的和2楼的思路一样
唉~
做一个调查问卷实在是太难了~
做了个测试
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title></head><body><form method="post" action=""> <input type="radio" name="ask1" id="a1" value="v1" />a1 <input type="radio" name="ask1" id="a2" value="v2" />a2 <input type="radio" name="ask1" id="a3" value="v3" />a3</form></body><script type="text/javascript">//<![CDATA[function a1(){ alert('a1 .... do something');}function a2(){ alert('a2 .... do something');}function a3(){ alert('a3 .... do something ');}function setradio(oname, v, fn){ var rdos = document.getElementsByName(oname); for ( var i=0,L=rdos.length; i<L; i++ ) { if ( rdos[i].value==v ) { rdos[i].onclick = function(){ fn(); }; } }}setradio('ask1', 'v1', a1);setradio('ask1', 'v2', a2);setradio('ask1', 'v3', a3);//]]></script></html>
恩!
谢谢大家
帖子结了
目前的思路是和xiaojing7的想法一样的
感谢大家的回复,以后有问题,我还会来骚扰大家的
谢谢
欢迎骚扰
真恶心
asdfadsasdf
function getRadio(obj) {
alert(obj.value);
var logon = document.getElementById("logon");
var reg = document.getElementById("reg");
}
1
2
没事别动不东就自动执行 onload什么的