DIY简易抢答器

部门的竞赛活动有抢答的环节,但是没有抢答设备,于是google了一下相关的软件,发现现行软件都是依赖于硬件的。

偶然发现有人提到可以多个键盘操作一个文档的概念,于是突发奇想,这种方式稍微改进一下其实就是抢答器的原型嘛。

基本原理:

1、同一台电脑接入多个控制设备(键盘),接收键盘的按键操作;
2、通过html的input文本框控件显示输入内容;
3、在捕获输入事件时,判断已输入的内容进行内容控制,保证只能输入一个字符

基本代码:

  1. <head>
  2. <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
  3. <script type=“text/javascript” src=“http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js”></script>
  4. <script language=“javascript”>
  5. $(document).ready(function(){
  6. $(“#tt”).attr(“disabled”,”disabled”)
  7. $(“#bb”).click(function(){
  8. $(“#tt”).attr(“disabled”,”").attr(“value”,“”).focus()
  9. })
  10. $(“#tt”).keydown(function(){
  11. if($(“#tt”).val().length>0){
  12. $(“#tt”).attr(“disabled”,”disabled”)
  13. }
  14. })
  15. })
  16. </script>
  17. <meta http-equiv=“Content-Type” content=“text/html; charset=gb2312″></head>
  18. <body style=“text-align:center;padding-top:120px; background:#111″>
  19. <input type=“text” name=“tt” imemod id=“tt” style=“height:300px; width:600px; font-size:280px; margin:0 auto; line-height:300px; font-family:Arial, Helvetica, sans-serif; font-weight:bold; text-align:center; color:#111;”/><br/>
  20. <input type=“submit” name=“button” id=“bb” value=“开始抢答” style=“ margin:20px auto; ” />
  21. </body>

具体说明:

在这段代码中,主要通过jquery来监测键盘事件,如果捕获到按下按键的事件,则判断当前输入框内是否已有字符,如果有则禁用该输入框,这样就保证即使有多个控制键盘,也只会捕捉到最早的输入,也就达到了抢答的效果。

具体应用也很简单,准备一台台式机或笔记本连接多个键盘(如果USB口不够,可以准备USB hub),然后由控制的同学点击页面上的点开始抢答后,各个键盘即刻进行抢答输入。

存在的问题:

目前单纯通过js暂时是没法区分各个USB输入,也就是说暂时无法做到限制每个键盘只能按某个键,离真正的抢答器还有距离,不过已经基本可用了。

不要说你只有2个USB接口,去搜一下USB Hub

改进思路:

当然,通过这种方式对于场地和录入都有蛮多限制,聪明如你一定可以想到通过建立站点的方式——拿台主机做服务,抢答者各自通过浏览器访问站点,在活动开始后直接用鼠标抢点按钮(秒杀?!)提交信息,具体的怎么反馈和交互你就自己再想呗。

Tags:

无觅相关文章插件,快速提升流量