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

我最近在做一个 Ajax 查询的功能,代码如下:

  <form name="keywordForm" method="post" action=""
  <p id="profile_nav"
  <label for="profile"> 关键字搜索: </label
  <input style="width:80; height:20" type="text" name="keyword"onkeypress="searchKeywordKeyboard(event)" /> 
  <input type="button" value="搜索" onClick="searchKeyword()"
  </p>
  </form>

在文本框中输入关键字按回车,页面自动刷新了,结果肯定是没有实现无刷新搜索了。想了想,可能是按回车后默认提交了表单,于是将form去掉,果然不刷了。但是还是会有很多地方需要用到form。

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

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

  <input id="hiddenText" type="text" style="display:none" />

现在代码成了这样:

  <form name="keywordForm" method="post" action=""
  <p id="profile_nav"
  <label for="profile"> 关键字搜索: </label
  <input style="width:80; height:20" type="text" name="keyword"onkeypress="searchKeywordKeyboard(event)" /> 
  <input id="hiddenText" type="text" style="display:none"onkeypress="searchKeywordKeyboard(event)" />
  <input type="button" value="搜索" onClick="searchKeyword()"
  </p>
  </form>

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

如果以上的方法还不足以让你去解决问题,那么你可以用以下方法来阻止因为回车而引起的表单自动提交:

1 <form name="keywordForm" method="post" action="" onsubmit="return false;"
2 <p id="profile_nav"
3 <label for="profile"> 关键字搜索: </label
4 <input style="width:80; height:20" type="text" name="keyword"onkeypress="searchKeywordKeyboard(event)" /> 
5 <input id="hiddenText" type="text" style="display:none"onkeypress="searchKeywordKeyboard(event)" />
6 <input type="button" value="搜索" onClick="searchKeyword()"
7 </p>
8 </form>

就是在表单 form 后面加上一个 onsubmit 事件,返回 false,来阻止 form 提交。

时间: 2024-10-11 11:52:12

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

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

最近在做一个 Ajax 搜索的功能,代码如下: 1 <form class="form-horizontal"> 2 <input type="text" id="searchKeyWord" class="form-control" placeholder="请输入关键字"> 3 <button class="btn btn-block btn-danger&quo

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 可

键盘enter事件一个页面绑定多次

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jquery 键盘回车事件

<input id="search" placeholder="输入要领用的资产条码" id="scanCode" type="text"> 输入文本后,回车事件 $('#search').keydown(function(e){ if (e.keyCode == 13) { var arg0 = $("#search").val(); //执行自己的搜索事件 alert(arg0); } })

JS移动端如何监听软键盘回车事件

移动端经常项目中会有搜索之类的功能,一般实现的是按搜索按钮进行搜索,如果要像PC端一样实现按回车键进行搜索该怎么实现呢? 方法很简单,就是在搜索框的input外面套一个form标签  注意点:form标签一定得添加 action属性(可设置为空) <form action=""><input type="text" name="search" /></form> 移动端软键盘的回车会触发form的submit事

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

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

AngularJS进阶(二十八)解决AngualrJS页面刷新导致异常显示问题

解决AngualrJS页面刷新导致异常显示问题 绪 俗话说,细节决定成败,编程亦是如此.编程过程中我们可能会不自觉的忽视一些细节问题,殊不知,这些细节正是导致页面显示出现问题的地方.今略举一例,与君共勉之. 页面正常加载后,显示如下: 按F5刷新之后,页面如下所示: 很明显,页面显示出现了异常.回过头再看看Chrome的错误提示, 具体代码如下: 正是以上代码导致了错误的发生. 追根溯源 让我们回顾一下,错误到底是如何发生的.正常加载情况下,页面正常显示很容易理解,程序是按照既定的数据流走的.但

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

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

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