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 void(0)的妙用
Oct 21 Javascript
JavaScript 数组运用实现代码
Apr 13 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
Jan 27 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
Jan 13 Javascript
JsRender for object语法简介
Oct 31 Javascript
整理Javascript基础入门学习笔记
Nov 29 Javascript
JS实现的在线调色板实例(附demo源码下载)
Mar 01 Javascript
js实现精确到秒的日期选择器完整实例
Apr 30 Javascript
关于ES6箭头函数中的this问题
Feb 27 Javascript
手把手15分钟搭一个企业级脚手架
Sep 16 Javascript
Node.js Domain 模块实例详解
Mar 18 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
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
JavaScript表单常用验证集合
2008/01/16 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
Unix如何在一行中运行多个命令
2015/05/29 面试题
计算机网络毕业生自荐信
2013/10/01 职场文书
升学宴主持词
2014/04/02 职场文书
银行求职信
2014/05/31 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
黄石寨导游词
2015/02/05 职场文书
后勤个人工作总结
2015/02/28 职场文书
教师工作表现自我评价
2015/03/05 职场文书
Javascript使用integrity属性进行安全验证
2021/11/07 Javascript