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的跨域调用文件
Nov 19 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
Nov 13 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
Sep 22 Javascript
jQuery操作DOM之获取表单控件的值
Jan 23 Javascript
获取input标签的所有属性的方法
Jun 28 Javascript
js在ie下打开对话窗口的方法小结
Oct 24 Javascript
学习vue.js中class与style绑定
Dec 03 Javascript
基于node.js之调试器详解
Aug 22 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
Jul 11 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
Aug 28 Javascript
vue框架制作购物车小球动画效果实例代码
Sep 26 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 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 字符转义 注意事项
2009/05/27 PHP
PHP数组实例总结与说明
2011/08/23 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
js右键菜单效果代码
2007/07/21 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
关于js类的定义
2011/06/28 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
2020/05/11 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
Python3实现连接SQLite数据库的方法
2014/08/23 Python
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
《珍珠泉》教学反思
2014/02/20 职场文书
初二学习计划书范文
2014/04/27 职场文书
分公司负责人任命书
2014/06/04 职场文书
异地年检委托书范本
2014/09/24 职场文书
银行实习推荐信
2015/03/27 职场文书
少先队工作总结2015
2015/05/13 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android