页面搜索回车事件导致页面刷新的问题

最近在做一个 Ajax 搜索的功能,代码如下:

1 <form class="form-horizontal">
2   <input type="text" id="searchKeyWord" class="form-control" placeholder="请输入关键字">
3   <button class="btn btn-block btn-danger" type="button" id="findResume" onclick="getResumeListBySearch(‘/resume/getResumeList‘,      {currentPage:1,pageSize:document.all[‘pageSizes‘].value},‘‘,‘‘,‘#layOutInstHtmlId2‘,‘‘)">找简历</button>
4 </form>

在文本框中输入关键字按回车,页面自动刷新了,结果还是原先显示的列表,没有进行搜索查询。想了想,可能是按回车后默认提交了表单,于是将form注释掉,果然不刷了。但是还有其他搜索条件需要用到form提交进行搜索这样就不行啦。

一个表单下,如果只有一个文本框时,按下回车将会触发表单的提交事件。

有如下两种解决方法:

1.既然是只有一个文本框才会出问题,那么可以加一个隐藏的文本框,如下:

1 <input type="text" id="" class="form-control" style="display: none">

修改后的代码如下:

1 <form class="form-horizontal">
2   <input type="text" id="searchKeyWord" class="form-control" placeholder="请输入关键字">
3   <input type="text" id="" class="form-control" style="display: none">
4   <button class="btn btn-block btn-danger" type="button" id="findResume" onclick="getResumeListBySearch(‘/resume/getResumeList‘,      {currentPage:1,pageSize:document.all[‘pageSizes‘].value},‘‘,‘‘,‘#layOutInstHtmlId2‘,‘‘)">找简历</button>
5 </form>

结论是,可以采取两种方法解决这种问题:1.页面只有一个文本框时,去掉表单;2.如果非得用表单,只要不让表单里有且只有一个文本框就OK了。

2.在文本域元素中加入onkeydown或者onkeypress事件,判断如果用户点击了回车就阻止默认的行为。代码如下:

1 <form class="form-horizontal">
2   <input type="text" id="searchKeyWord" class="form-control" placeholder="请输入关键字" onkeypress="if(event.keyCode==13||event.which==13){return false;}" />
3   <button class="btn btn-block btn-danger" type="button" id="findResume" onclick="getResumeListBySearch(‘/resume/getResumeList‘,      {currentPage:1,pageSize:document.all[‘pageSizes‘].value},‘‘,‘‘,‘#layOutInstHtmlId2‘,‘‘)">找简历</button>
4 </form>

上面两种方法都圆满的解决了问题。

时间: 2024-10-15 20:39:17

页面搜索回车事件导致页面刷新的问题的相关文章

键盘回车事件导致页面刷新的问题

我最近在做一个 Ajax 查询的功能,代码如下:   <form name="keywordForm" method="post" action="">    <p id="profile_nav">    <label for="profile"> 关键字搜索: </label>    <input style="width:80; heig

vue el-form鼠标事件导致页面刷新解决方案;vue 阻止多次点击提交数据通用方法

一.阻止表单自动提交刷新页面:<el-form> <el-form-item :inline="true" @submit.native.prevent> <el-input @keyup.enter.native='submit'></el-input> </el-form-item> </el-form> 注意: 鼠标事件导致页面刷新问题,在el-form上增加 @submit.native.prevent 可

那些琐碎的知识-----搜索回车跳转页面

如图搜索框,想要实现文本输入内容后敲击回车(等同于点击后面的小放大镜图标)后跳转到搜索结果的页面 <div class="head-ss02"> <input name="ss" type="text" id="search" onkeypress="javascript:enterSubmitss(this,event);" size="2" /> <in

js 监听整个页面的回车事件

JS监听整个页面的回车事件 <script type="text/javascript"> document.onkeydown=keyDownSearch;        function keyDownSearch(e) {          // 兼容FF和IE和Opera          var theEvent = e || window.event;          var code = theEvent.keyCode || theEvent.which

JS监听整个页面的回车事件

 <script type="text/javascript">     document.onkeydown=keyDownSearch;       function keyDownSearch(e) {           // 兼容FF和IE和Opera           var theEvent = e || window.event;           var code = theEvent.keyCode || theEvent.which || theE

UIWebView与javascript交互二通过页面的响应事件获取页面输入框内的值

接上篇文章,上篇文章实现了UIwebview对html文件的加载和对js事件的响应,但是对html页面上输入的值没有获取. 今天就来说说这个首先要用到工具类WebViewJavascriptBridge 下载地址 然后将工具类导入到项目中. 其中test.js我做了如下的调整: window.onerror = function(err) { log('window.onerror: ' + err) } function connectWebViewJavascriptBridge(callb

ztree在onCheck()方法中防止因触发联动关系导致页面多次渲染而卡死的问题

这几天在项目中遇到了要使用树形选择框, 而且要求比较复杂,具体叙述如下: 首先是有个选择框,左边选择是适用的商品,右边显示已经选择的商品.也就是说,左边每次勾选操作,都要触发一个事件去刷新右边的页面, 而且,左边商品如果选择大类,则右边显示大类,其下小类都不显示 也就是说有父子联动的关系. 刚开始的时候, 选择了使用bootStrap的tree_view这个插件,一开始还好,基本成型,后来测试时才发现问题,,当数据量很大的时候,,这个插件用起来很卡很卡,,而且又加了个带搜索功能,这个插件就显得有

记录一个关于 Document.on绑定事件后,导致页面卡顿的情况

假设当前页面的js文件中有如下函数: function A(){ function B(); } function B(){ $(document).on("click","#元素id",function(){ dosomething……; }); } 函数A是一个按钮上绑定的onclick函数处理: 那么每次点击按钮触发A函数之后,都会导致B函数的执行,进而 $("#元素id") 这个元素就会绑定一次点击事件. 如果多次触发A函数之后,导致 $

微信小程序页面事件-下拉刷新,上拉加载更多

1.下拉刷新的概念及应用场景. 概念: 下拉刷新是移动端更新列表数据的交互行为,用户通过手指在屏幕上子上而下的滑动,可以触发页面的下拉刷新,更新列表数据. 应用场景: 在移动端,数据列表是常见的页面效果,更新列表数据是最基本的页面需求,相比于按钮刷新,定时刷新来说,下拉刷新的用户体验方便友好,已经成为移动端刷新列表数据的最佳解决方案. 微信小程序启动下拉刷新: 两种方式: 1.需要在app.json 的window选项中或页面配置中开启enablePullDownRefresh, 但是,一般情况