Javascript 页面正在刷新JSON请求

Javascript 页面正在刷新JSON请求,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试构建一个页面,允许用户在文本字段中输入文本,然后点击键盘上的enter键,它将返回包含该文本的前10个维基百科条目 目前,我担心的是,页面每次获取JSON时都会刷新。当我读到关于其他问题的文章时,我尝试了e.preventDefault方法,但它不起作用。有人能帮我理解为什么会发生这种自动刷新,以及如何修复它吗?多谢各位 这是我的HTML: <div class="container-fluid"> <form action="#"> <inp

我正在尝试构建一个页面,允许用户在文本字段中输入文本,然后点击键盘上的enter键,它将返回包含该文本的前10个维基百科条目

目前,我担心的是,页面每次获取JSON时都会刷新。当我读到关于其他问题的文章时,我尝试了e.preventDefault方法,但它不起作用。有人能帮我理解为什么会发生这种自动刷新,以及如何修复它吗?多谢各位

这是我的HTML:

<div class="container-fluid">
  <form action="#">
    <input id="search" name="query" onkeyup="" type="text"></input>
  </form>
</div>
<div class="main"></div>
</div>

这里有一个链接:

从HTML中删除标记。

因为您提交表单时按enter键可以做到这一点。表单提交到当前页面,看起来像是重新加载

<form id="searchform>
    <input id="search" name="query" onkeyup="" type="text"></input>
  </form>

$('#searchform').on('submit', function(e){
    e.preventDefault();
    // your magic here.
});
preventDefault会停止向上提交密钥,但到那时,您已经开始提交了。poreventDefault停止enter GETING input as text(输入为文本)操作。您可以使用textarea对此进行检查。如果你把它改成一个字母,比如说a,你会打a,但看不见

您还可以删除表单本身,只保留输入,如果这不会产生其他问题,从而减少HTML,这很好。

您正在使用表单,在输入/返回时,它将尝试提交表单

除非有按钮type=submit或input type=submit,否则请删除表单并仅使用input

<div class="container-fluid">
 <input id="search" name="query" onkeyup="" type="text"></input>
</div>
<div class="main"></div>
</div>

你可以删除什么?为什么?为什么?这不是一个答案,OP不会从事物中学到任何东西。@ishanshah这是有效的。我不知道为什么,但它确实起了作用,因为表单标记将数据提交给服务器,因此页面被刷新。如果您没有使用submit,那么就没有使用form标记。谢谢您的回答,但是当用户现在按键盘上的Enter键时,页面不会触发JSON请求……不,您绑定了Enter->getJson。但是浏览器的固有功能意味着您提交了一个formYes,删除了它的标记。非常感谢。这是因为您现在不再提交表单:另外,如果解决了问题,请将答案标记为解决方案:
<div class="container-fluid">
 <input id="search" name="query" onkeyup="" type="text"></input>
</div>
<div class="main"></div>
</div>