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 相关文章推荐
利用Ext Js生成动态树实例代码
Sep 08 Javascript
Javascript 遍历页面text控件详解
Jan 06 Javascript
js 获取元素下面所有li的两种方法
Apr 14 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
Mar 09 Javascript
javascript实现textarea中tab键的缩排处理方法
Jun 26 Javascript
javascript精确统计网站访问量实例代码
Dec 19 Javascript
JavaScript 是什么意思
Sep 22 Javascript
Bootstrap整体框架之CSS12栅格系统
Dec 15 Javascript
基于jQuery实现的单行公告活动轮播效果
Aug 23 jQuery
探究react-native 源码的图片缓存问题
Aug 24 Javascript
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
Vue 嵌套路由使用总结(推荐)
Jan 13 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中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
php车辆违章查询数据示例
2016/10/14 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
Javascript 读后台cookie代码
2008/09/15 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
python访问抓取网页常用命令总结
2017/04/11 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
django框架ModelForm组件用法详解
2019/12/11 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
工厂厂长的职责
2013/12/12 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
九年级英语教学反思
2014/01/31 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
企业口号大全
2014/06/12 职场文书
环保标语大全
2014/06/12 职场文书
汽车车尾标语大全
2015/08/11 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
Java实现二分搜索树的示例代码
2022/03/17 Java/Android
配置nginx负载均衡
2022/05/06 Servers