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


Posted in Javascript onDecember 12, 2012

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属性,只有这样才能实现单选的效果,不然的话上面例子的‘喜欢'、‘不喜欢'、‘无所谓'就可以同时选上了,切记!

Javascript 相关文章推荐
jQuery随机密码生成的方法
Mar 09 Javascript
jQuery对象与DOM对象转换方法详解
May 10 Javascript
jQuery购物网页经典制作案例
Aug 19 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
Jul 03 Javascript
简单实现js鼠标跟随效果
Aug 02 Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 Javascript
JavaScript实现的超简单计算器功能示例
Dec 23 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
Aug 07 Javascript
JS原型与继承操作示例
May 09 Javascript
JS中实现一个下载进度条及播放进度条的代码
Jun 10 Javascript
vue store之状态管理模式的详细介绍
Jun 13 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
Dec 12 #Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
Dec 12 #Javascript
javascript实现图片切换的幻灯片效果源代码
Dec 12 #Javascript
javascript跑马灯悬停放大效果实现代码
Dec 12 #Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
Dec 12 #Javascript
javascript采用数组实现tab菜单切换效果
Dec 12 #Javascript
javascript仿qq界面的折叠菜单实现代码
Dec 12 #Javascript
You might like
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
PHP 断点续传实例详解
2017/11/11 PHP
php实现登录页面的简单实例
2019/09/29 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
详细解读JavaScript的跨浏览器事件处理
2015/08/12 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
简单谈谈python中的多进程
2016/11/06 Python
Flask数据库迁移简单介绍
2017/10/24 Python
python如何创建TCP服务端和客户端
2018/08/26 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
Python同时迭代多个序列的方法
2020/07/28 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
大学生的创业计划书就该这么写
2014/01/30 职场文书
2015年元旦活动总结
2014/05/09 职场文书
幼师中班个人总结
2015/02/12 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
AJAX学习笔记
2021/05/18 Javascript
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python