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 相关文章推荐
javascript-TreeView父子联动效果保持节点状态一致
Aug 12 Javascript
jQuery对象和DOM对象的相互转化实现代码
Mar 02 Javascript
jQuery ajax serialize() 方法使用示例
Nov 02 Javascript
js实现鼠标感应图片展示的方法
Feb 27 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
Aug 21 Javascript
JavaScript DOM节点操作方法总结
Aug 23 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 Javascript
vue组件表单数据回显验证及提交的实例代码
Aug 30 Javascript
原生JS实现手动轮播图效果实例代码
Nov 22 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
Feb 02 Javascript
vue实现图书管理系统
Dec 29 Vue.js
使用原生javascript开发计算器实例代码
Feb 21 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
制作美丽的拉花
2021/03/03 冲泡冲煮
PHP在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
介绍Python中几个常用的类方法
2015/04/08 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
应届毕业生求职信范文
2013/12/18 职场文书
大学生毕业自我鉴定范文
2014/02/03 职场文书
六查六看心得体会
2014/10/14 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP