Todavía no puedo comentar, así que publico esto como respuesta. La mejor manera de evitar la recarga es cómo dijo @ user2868288: usando onsubmit
en la form
etiqueta.
De todas las otras posibilidades mencionadas aquí, es la única forma que permite que se active la nueva validación de entrada de datos del navegador HTML5 ( <button>
no lo hará ni los controladores jQuery / JS) y permite que su información dinámica jQuery / AJAX se agregue en el página. Por ejemplo:
<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' />
.