Answers:
使用<button>
元素或使用<input type="button"/>
。
<button>
放置在表格外时,刷新不会发生!
type="button"
到<button>
chrome中的元素,它不会刷新
您可以使用jQuery在按钮上添加点击处理程序,并返回false。
$("input[type='submit']").click(function() { return false; });
要么
$("form").submit(function() { return false; });
您可以使用包含提交按钮的表单。然后使用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>
我目前无法发表评论,因此我将其发布为答案。避免重新加载的最佳方法是@ user2868288所说的:onsubmit
在form
标记上使用。
从这里提到的所有其他可能性中,这是唯一的方法,它可以触发新的HTML5浏览器数据输入验证(<button>
不会这样做,也不会使用jQuery / JS处理程序),并允许将jQuery / AJAX动态信息附加到页。例如:
<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>
<input type='button' />
。