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的相对父元素和相对文档定位示例代码
Aug 02 Javascript
JavaScript中instanceof运算符的用法总结
Nov 19 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
详解javascript中的事件处理
Nov 06 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
May 07 Javascript
AngularJS入门教程之迭代器过滤详解
Aug 18 Javascript
javascript 组合按键事件监听实现代码
Feb 21 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
Jun 04 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 Javascript
vue+axios实现post文件下载
Sep 25 Javascript
浅谈vue项目,访问路径#号的问题
Aug 14 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
Smarty模板引擎缓存机制详解
2016/05/23 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
jQuery代码优化之基本事件
2011/11/01 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
再探JavaScript作用域
2014/09/24 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
基于iScroll实现内容滚动效果
2018/03/21 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python如何在终端里面显示一张图片
2016/08/17 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
Python如何对齐字符串
2020/07/30 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
疾病证明书
2015/06/19 职场文书
文艺委员竞选稿
2015/11/19 职场文书
oracle通过存储过程上传list保存功能
2021/05/12 Oracle
python 如何用terminal输入参数
2021/05/25 Python
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript