如何使HTML按钮不重新加载页面

Ank*_*kur 106 html button javascript-events

我有一个按钮(<input type="submit">).单击它时页面将重新加载.由于我有一些hide()在页面加载时调用的jQuery 函数,这会导致这些元素再次被隐藏.如何使按钮不执行任何操作,因此我仍然可以添加在单击按钮但不重新加载页面时发生的某些操作.

Jaf*_*oli 200

没有必要js或jquery.停止页面重新加载只需将按钮类型指定为"按钮".如果您没有指定按钮类型,浏览器会将其设置为"重置"或"提交"导致页面重新加载.

 <button type='button'>submit</button> 
Run Code Online (Sandbox Code Playgroud)

  • 这确实有效!它是`&lt;input type='button' /&gt;` 的一个很好的替代品。 (4认同)
  • 这很好用,特别是在Chrome的情况下(接受的答案没有) (4认同)
  • @Ankur这应该被标记为答案,因为它在100%的情况下有效. (2认同)
  • 在Windows 10上使用Chrome.是的! (2认同)

And*_*are 78

使用<button>元素或使用<input type="button"/>.

  • 默认情况下,<button>元素会导致重新加载chrome(至少). (109认同)
  • @pbeardshear如果它放在表单中,它会这样做.当`<button>`放在表格外面时,不会发生刷新! (23认同)
  • 将`type ="button"`添加到chrome中的`<button>`元素,它不会刷新 (13认同)
  • @Joe实际上不幸的是:/我需要我的webapp才能用于IE8并且重新加载有点烦人...... (4认同)
  • 您仍然可以使用表单onsubmit事件,如果您仍然不想返回,则返回false (2认同)
  • 我看了这个,因为我的`<button>`元素在我不想要的时候重新提交了我的页面.正确的答案是Jafar Rasooli的至少截至此日期和Chrome所关注的问题.正如@Kevinvhengst所提到的那样,按钮不会提交,除非它在表格标签内,这也是正确的.显然,重置默认按钮类型. (2认同)

小智 19

在HTML中:

<form onsubmit="return false">
</form>
Run Code Online (Sandbox Code Playgroud)

为了避免刷新所有"按钮",即使分配了onclick.

  • 应该是正确答案。使用按钮会破坏表单的提交和要求功能 (3认同)

Chr*_*rez 14

您可以使用jQuery在按钮上添加单击处理程序并返回false.

$("input[type='submit']").click(function() { return false; });
Run Code Online (Sandbox Code Playgroud)

要么

$("form").submit(function() { return false; });
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用.在chrome中返回false,至少在最新版本中,仍然会导致刷新. (5认同)

pes*_*669 13

在HTML中:

<input type="submit" onclick="return false">
Run Code Online (Sandbox Code Playgroud)

使用jQuery,已经提到了一些类似的变体.


Pro*_*ndy 7

您可以使用包含提交按钮的表单。然后使用jQuery防止表单的默认行为:

$(document).ready(function($) {
  $(document).on('submit', '#submit-form', function(event) {
    event.preventDefault();
  
    alert('page did not reload');
  });
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<form id='submit-form'>
  <button type='submit'>submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)


mac*_*125 6

您还可以使用 JavaScript 来实现:

  let input = document.querySelector("input");
  input.addEventListener("submit", (event) => {
    event.preventDefault();
  })
Run Code Online (Sandbox Code Playgroud)

  • 这应该是已批准的答案 (2认同)

Com*_*wan 5

正如上面的评论之一(隐藏)所述,可以通过不在表单标签内放置按钮标签来解决此问题。当按钮位于表单之外时,页面不会自行刷新。