如何使HTMLbutton不能重新加载页面

我有一个button( <input type="submit"> )。 当它被点击时,页面重新加载。 由于我有一些jQuery hide()函数在页面加载时被调用,这导致这些元素被再次隐藏。 我该如何让button什么都不做,所以我仍然可以添加一些button被点击但不重新加载页面的动作。

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

不需要js或jquery。 停止页面重新加载只需指定buttontypes为“button”。 如果你不指定buttontypes,浏览器会将其设置为“重置”或“提交”,从而导致页面重新加载。

  <button type='button'>submit</button> 

你可以用jQuery在button上添加一个点击处理程序,并返回false。

 $("input[type='submit']").click(function() { return false; }); 

要么

 $("form").submit(function() { return false; }); 

在HTML中:

 <form onsubmit="return false"> </form> 

为了避免刷新所有的“button”,即使点击了button。

在HTML中:

 <input type="submit" onclick="return false"> 

与jQuery,一些类似的变种,已经提到。

正如在上面的评论(burried)中所述,这可以通过不将button标签放置在表单标签内来解决。 当button在表单之外时,页面不会自行刷新。

我还不能评论,所以我发布这个答案。 避免重新加载的最佳方法是@ user2868288如何使用form标签上的onsubmit

从这里提到的所有其他可能性,它是唯一的方式,允许触发新的HTML5浏览器数据inputvalidation( <button>不会这样做,也不是jQuery / JS处理程序),并允许您的jQuery / AJAXdynamic信息附加在页面上。 例如:

 <form id="frmData" onsubmit="return false"> <input type="email" id="txtEmail" name="input_email" required="" placeholder="Enter a valid e-mail" spellcheck="false"/> <input type="tel" id="txtTel" name="input_tel" required="" placeholder="Enter your telephone number" spellcheck="false"/> <input type="submit" id="btnSubmit" value="Send Info"/> </form> <script type="text/javascript"> $(document).ready(function(){ $('#btnSubmit').click(function() { var tel = $("#txtTel").val(); var email = $("#txtEmail").val(); $.post("scripts/contact.php", { tel1: tel, email1: email }) .done(function(data) { $('#lblEstatus').append(data); // Appends status if (data == "Received") { $("#btnSubmit").attr('disabled', 'disabled'); // Disable doubleclickers. } }) .fail(function(xhr, textStatus, errorThrown) { $('#lblEstatus').append("Error. Try later."); }); }); }); </script> 

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

 $(document).ready(function($) { $(document).on('submit', '#submit-form', function(event) { event.preventDefault(); alert('page did not reload'); }); }); 
 <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>