捕捉enter事件实现搜索功能时遇到的一个怪异问题
2012-10-27 14:25
465 查看
用的是bootstrap框架。
HTML代码:
JS代码:(传说中的可以兼容IE和Firefox的代码)
在chrome和firefox浏览器中运行的现象:鼠标点击文本输入框,输入关键字,按下enter键,能实现搜索功能,但“下拉菜单”被展开,就像下拉菜单同时被点击了一样。
解决办法:去掉<form>和<fieldset>这两个层级的标签。
好像问题解决了^__________^?
但,等等,在IE8和IE9下,按下enter键下拉菜单还是会展开,好吧,几经折腾,找到的解决办法是把<button>标签换成<a>标签,最终HTML代码如下:
这下应该没问题了~
HTML代码:
<form class="form-horizontal"> <fieldset> <div class="control-group"> <div class="controls"> <div class="input-append pull-right"> <input id="sample_search" class="span3" type="text" size="32" value="" placeholder="文件MD5/文件名" onKeyUp="goSearch(event)" /><a href="javascript:void(0);" id="samplesearchbtn" class="btn"><i class="icon-search"></i>搜索</a> </div> <div class="btn-group pull-left"> <button class="btn dropdown-toggle" data-toggle="dropdown">下拉菜单<span class="caret"></span> </button> <ul class="dropdown-menu"> <li><a href="javascript:void(0);" onClick="multi_online_identify()">子菜单一</a></li> <li><a href="javascript:void(0);">子菜单二</a></li> <li><a href="javascript:void(0);">子菜单三</a></li> </ul> </div> </div> </div> </fieldset> </form>
JS代码:(传说中的可以兼容IE和Firefox的代码)
function goSearch(event){ var e = event || window.event || arguments.callee.caller.arguments[0]; if(e && e.keyCode==13){ getSampleInfo({'page':1}); return false; } }
在chrome和firefox浏览器中运行的现象:鼠标点击文本输入框,输入关键字,按下enter键,能实现搜索功能,但“下拉菜单”被展开,就像下拉菜单同时被点击了一样。
解决办法:去掉<form>和<fieldset>这两个层级的标签。
好像问题解决了^__________^?
但,等等,在IE8和IE9下,按下enter键下拉菜单还是会展开,好吧,几经折腾,找到的解决办法是把<button>标签换成<a>标签,最终HTML代码如下:
<div class="control-group"> <div class="controls"> <div class="input-append pull-right"> <input id="sample_search" class="span3" type="text" size="32" value="" placeholder="文件MD5/文件名" onKeyUp="goSearch(event)" /><a href="javascript:void(0);" id="samplesearchbtn" class="btn"><i class="icon-search"></i>搜索</a> </div> <div class="btn-group pull-left"> <a class="btn dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">下拉菜单<span class="caret"></span> </a> <ul class="dropdown-menu"> <li><a href="javascript:void(0);" onClick="multi_online_identify()">子菜单一</a></li> <li><a href="javascript:void(0);">子菜单二</a></li> <li><a href="javascript:void(0);">子菜单三</a></li> </ul> </div> </div> </div>
这下应该没问题了~
相关文章推荐
- CSDN博客:对于一个程序员,写程序就是实现功能,遇到具体问题,解决这个问题,并记录问题到CSDN上,从而有所提高和互相帮助。
- 在tp3.2.3中使用 FormData 对象实现表单的文件上传功能遇到的一个问题及解决方法
- 最近遇到一个非常棘手的需求是关于邮件转发的问题,请大家来帮忙给出出主意如何实现。
- 做一个功能,遇到的webview的一些问题,整理下
- ASP.NET编程时遇到GridView的一个问题 激发了未处理的事件"PageIndexChanging"
- 【orange】OrangeS一个操作系统的实现:第四章实践方面遇到的一些问题
- 在学习autotools遇到一个问题:make没有按照VPATH给的目录进行搜索,请大家指导一下。
- 今天实现二叉树的时候遇到了一个很有意思的问题
- ashx实现ajax功能遇到的浏览器缓存问题
- 在程序中怎样实现一个搜索功能
- Android 类似淘宝 电商 搜索功能,监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录的实现
- 通过 UIKeyboardWillShowNotification 捕获软键盘事件 一个搜索效果的实现
- ashx实现ajax功能遇到的浏览器缓存问题
- ueditor1_4_3-utf8-jsp 配置实现上传图片的功能遇到的问题,改变图片上传请求地址
- 封装一个字符数组,实现增加,删除,替换,打印,搜索等功能
- JDCB学习笔记 -- day05 实现一个用户的登录功能及解决SQL注入问题
- 做机械臂导航时遇到的问题5:如何使用ROS内嵌serial功能包实现串口通信
- 一个搜索的需求可以有多少功能问题?(上)
- 使用flexpaper实现在线预览功能时 ,遇到的flash缓存问题的解放方案
- 以上的文章是我解决这样一个问题时候的大致的思路: 把Matlab读取二进制文件的函数变成VBA读取二进制文件,实现同样的功能