求助HTML高手radio如何响应失去选中事件_html/css_WEB-ITnose

呵呵~!

我做的东西比较恶心

现在遇到了个问题就是input的radio控件响应事件问题

是这样:一个radio不光要响应被选中的事件,还要监听自己被撤销选中的事件

比如我有个选择题,A,B,C三个选项

用户在页面先选了A,根据某些业务逻辑,选了A以后是要进行一些相关操作的

但是这时候用户想了一下,觉得选A不好,改选B了

那么刚才根据用户选了A这一结果执行的操作,就要实现逆操作

我想设置radio的 onpropertychange事件来实现这个操作,但是发现把JavaScript方法注册到事件上以后

用户点中radio的时候,浏览器调用了2次该方法

而且似乎是在radio的checked属性被设置为true之前调用一次,设置为true之后调用一次

而当选了同组其他radio的时候,这个方法只执行了一次

很郁闷

所以来问问

有没有方法监听radio控件被选中和被撤销的事件啊?

谢谢大家了

回复讨论(解决方案)

换个思路。如果改选B,那么会触发事件。这样同样可以监听A撤消啊

试试 onclick 

用一个全局变量记住当前选项

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

登录后复制 

 a  b  c 
<!--var obj=document.getElementById("radios").getElementsByTagName("input")for (var i=0;i 

登录后复制

使用临时变量是不行的

因为页面上的选择题的数量,以及选择题和填空题

以及题目之间的跳转关系

比如:单选某一选项要跳转到哪个题
      选择题之间选项的组合,选择题与填空题之间的组合

等等都是用户在设计试卷的时候指定的

不是写死在页面上的

变量可以动态创建,或用数组,不需要写死。

路过 学习

用一个全局变量记住当前选项 

HTML code
 

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(){
v…

正解!

打酱油

失去选中,也即失去焦点,那么失去焦点的事件可以在对象中这样响应
…onblur=”javascript:workFunName(参数);”…

失去选中,也即失去焦点,那么失去焦点的事件可以在对象中这样响应 
…onblur=”javascript:workFunName(参数);”…

绝错~

你选A选项以后,再去填一个空

然后回来看这个选择题,改成了选B,此时,A失去选中,但不会触发失去焦点事件

我想的和2楼的思路一样

唉~

做一个调查问卷实在是太难了~

做了个测试

nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

登录后复制//<![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

恩!

谢谢大家

帖子结了 

目前的思路是和xiaojing7的想法一样的

感谢大家的回复,以后有问题,我还会来骚扰大家的

谢谢

欢迎骚扰

真恶心

asdfadsasdf

function getRadio(obj) {
alert(obj.value);
var logon = document.getElementById(“logon”);
var reg = document.getElementById(“reg”);

}

1

2

没事别动不东就自动执行 onload什么的

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3113269.html

(0)
上一篇 2025年3月29日 11:55:30
下一篇 2025年3月29日 11:55:38

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论