il faut d'abord empêcher la validation du formulaire puis l'envoyer vers la page en mode Ajax (et le vérifier au cas où)
J'utilise ici la fonction "ON()" que je trouve plus parlante que "keyup()". Cela reviens au même mais grâce à "on()" tu peux définir l'évènement n'importe où il se produit sur la page n'importe quand. Dans l’exemple ci-après l'évènement et la touche Enter dans le formulaire #formComs.
<form action="#" method="post" id="formComs">
<textarea placeholder="Écrire un commentaire" name="coms_text" class="elastic statutCom"></textarea>
</form>
[javascript]$(document.body).on({
keyup : function (event) {
event.stopPropagation(); //bloque la propagation de l'évènement (touche enter appuyée)
event.preventDefault(); //bloque la validation du formulaire (rechargement de la page)
if (event.keyCode == 13) {
//vérifie si le textearea n'est pas vide
if($('.statutCom').val().length < 1)
return;
else {
//envoi des données du formulaire via Ajax
$.ajax({
type: 'POST',
async : false,
url: '
http://www.monsite.com/pageTraitement.php',
data: {"statutCom" : $('.statutCom').val()},
complete : function (xhr, result) {
if (result != "success") return;
var reponse = xhr.responseText;
...
}
});
}
}
}
},'#formComs');[/javascript]
On pourrait aussi imaginer un click sur un bouton de validation :
<form action="#" method="post" id="formComs">
<textarea placeholder="Écrire un commentaire" name="coms_text" class="elastic statutCom"></textarea>
<input type="button" id="validation" value="Envoyer" >
</form>
[javascript]
$(document.body).on({
click: function (event) {
event.stopPropagation(); //bloque la propagation de l'évènement
event.preventDefault(); //comme le bouton n'est pas un type="submit" ne sert pas à grand chose
if (event.which != 1) return; //clic gauche obligatoire
//vérifie si le textearea n'est pas vide
if($('.statutCom').val().length < 1)
return;
else {
//envoi des données du formulaire via Ajax
$.ajax({
type: 'POST',
async : false,
url: '
http://www.monsite.com/pageTraitement.php',
data: {"statutCom" : $('.statutCom').val()},
complete : function (xhr, result) {
if (result != "success") return;
var reponse = xhr.responseText;
...
}
});
}
}
},'#validation');[/javascript]