码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-10-28 12:25:14      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

      最近在做一个 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>

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

 

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

标签:

原文地址:http://www.cnblogs.com/szhome/p/jsp_EnterReflesh_20151028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!