单选框radio改变事件,改变单选按钮radio的默认样式

http://www.itjxue.com  2023-01-09 01:34  来源:未知  点击次数: 

jquery 执行两次?

如果是把点击事件绑定到label标签上,那肯定就是这种情况的,因为单选框的选中事件肯定是发生在label标签的点击事件发生之后的,所以label的点击事件是无法实时捕捉到单选框被选中后的值的。之所以会触发两次,是单选框的值改变后会产生事件冒泡,让上级的label标签再次触发事件。

解决办法可以通过事件委托,放过第一次触发,然后冒泡后的再来处理。但是,我更希望你换一种思路,不要只盯着label的点击事件,你可以考虑下利用单选框的change事件,也就是说只要单选框的选中状态发生改变就进行处理,这样当你点击label时单选框选中也会触发change事件的,而且不用担心会执行两次了。类似这样:

$( ".zy_time label input:radio" ).change( function () {

console.log('哈哈');

} );

javascript单选框radio太小,如何放大。

这个是无法放大的,浏览器渲染这有那么大,你在网页上看到的那种都是通过radio和label在加上背景图实现的。然后通过点击事件动态改变checked和unchecked背景图来实现你所说的功能。

jsp中选择单选框改变下面显示的值,这个代码如何实现

用js触发啦 点击radio的时候 获取他的单击事件 然后将他的vslue值获取到写进TD里面 TD里面最好用个什么标签来接收好操作一点

JS怎样操作改变radio的状态

!DOCTYPE?html

html

head

meta?charset="UTF-8"?/

titleJS怎样操作改变radio的状态/title

script

var?radio?=?function(name){

this.name?=?'';?//单选框名字

this.members?=?[];?//单选框的成员

this.init?=?function(name){?//初始化

var?newMembers?=?[];?//新的成员

this.name?=?name;

this.members?=?document.body.getElementsByTagName('input');

for(var?i?=?0;?i??this.members.length;?i++){

if(?this.members[i].name?==?this.name?){

newMembers.push(?this.members[i]?);

}

}

this.members?=?newMembers;?//覆盖

}

this.select?=?function(index){?//看这个函数就行,其他的请无视

for(var?i?=?0;?i??this.members.length;?i++){

if(?i?==?index?){

this.members[i].checked?=?true;

}else{

this.members[i].checked?=?false;

}

}

}

this.init(name);

}

window.onload?=?function(){

window.sex?=?new?radio('sex');

}

/script

/head

body

div?class="main"

span请选择你的性别:/span

input?type="radio"?name="sex"?value="男"?span男/span

input?type="radio"?name="sex"?value="女"?span女/span

hr?/

button?onclick="sex.select(0)"选择男/button

button?onclick="sex.select(1)"选择女/button

button?onclick="sex.select(-1)"都不选/button

/div

/body

/html

只要控制radio元素checked属性即可

这里写了个案例(写完才发现,忘了检查类型了,不过不影响这题的回答)

附图:

HTML复选框和单选框 checkbox和radio事件介绍

checkbox

radio的事件选择一度让我很迷惑。

开始以我对js的理解,我觉得change事件应该是最合理的,可惜啊ie下change事件是在改变后焦点离开时才触发。

后来就用click

mousedown等鼠标事件代替。发现click比mousedown要更完美一些:

radio注册了click事件以后,神奇的是用键盘上的上下左右选择时,居然会触发鼠标事件,滚轮也会触发,这种神奇的事情在mousedown下面是不会发生的。(webkit不能使用上下左右选择)

checkbox注册click事件后,奇迹再次上演,当我们用空格选中checkbox时,神奇的click事件再次触发,而mousedown再次与奇迹擦身而过。(webkit还是不能用空格选择)

让我们都用click吧,给这两位老兄减负吧,不要为了他们先天不足给他们绑定一堆事件了,对于这两个家伙click才是万能的。膜拜一下~~~

在用表单设计调查表时,为了减少用户的操作,使用选择框是一个好主意,在HTML的input标记中有两种选择框,即单选框和复选框,两者的区别是单选框中的选项用户只能选择一项,而复选框中的选项用户可以任意选择多项,甚至全选。请看下面的例子:

下面给出这个例子的源代码,结合代码来讲各参数的设置:

form

name="form1"

你是否喜欢旅游?请选择:

复制代码

代码如下:

input

type="radio"

name="radiobutton"

value="radiobutton"

checked

喜欢

input

type="radio"

name="radiobutton"

value="radiobutton"

不喜欢

input

type="radio"

name="radiobutton"

value="radiobutton"

无所谓br

您对那些运动感兴趣,请选择:

复制代码

代码如下:

input

type="checkbox"

name="checkbox1"

value="checkbox"

跑步

input

type="checkbox"

name="checkbox2"

value="checkbox"

打球

input

type="checkbox"

name="checkbox3"

value="checkbox"

登山

input

type="checkbox"

name="checkbox4"

value="checkbox"

健美br

/form

从上面的源代码中可看出,制作单选框只要把input标记的type参数设置为type="radio"就行了;而制作复选框则只要把input标记的type参数设置为type="checkbox"就行了。至于实际应用中用那种选择框,要根据实际需要而定。若只需用户有一种选择的,就用单选框,如本例中“你是否喜欢旅游?”这个问题,用户只能是一种选择,所以采用了单选框;若允许用户有多项选择的内容,则采用复选框,如本例中的“你对那些运动感兴趣?”这个问题,因一个人的兴趣可能是多方面的,所以采用了复选框。

在input标记中设定checked参数,则该选框就被默认选中。如本例的第一个单选框(“喜欢”下面那个单选框)就设置为默认选中,这样用户若是想选择“喜欢”的话,就可以不用再选了,当然,若用户要选择了“不喜欢”,则只要点击“不喜欢”下的那单选框,而默认值被自动取消。用同样的方法也可以设置某个复选框为默认被选中。但是复选框的默认选中不可滥用,否则会引起用户的反感。

在radio里面千万要注意记得把所有的input

type='radio'这个对象的name属性都设为相同的,比如说上例的

name="radiobutton"

,记住不是ID属性,只有这样才能实现单选的效果,不然的话上面例子的‘喜欢'、‘不喜欢'、‘无所谓'就可以同时选上了,切记!

layui 下 监听单选框radio改变事件

若是使用jquery的话

注意:如果是引?了layui的样式和?法,则上?的监听事件失效,被layui接管了

而且如果你有多个radio,需要加入lay-filter来区分,否则监听不起作用

所以应该如下写法:

(责任编辑:IT教学网)

更多

推荐Javascript/Ajax文章