Comment désactiver l’envoi du formulaire si le nom d’utilisateur n’est pas disponible

J’ai vérifié la disponibilité du nom d’utilisateur. Le problème est que, même si le nom d’utilisateur n’est pas disponible, le formulaire est en cours de publication.

Code édité:

 $(document).ready(function(){ $("#emailch").change(function() { var usr = $("#emailch").val(); if(usr.length >= 3) { $("#status").html(' Checking availability...'); $.ajax({ type: "POST", url: "includes/check.php", data: "username="+ usr, success: function(msg){ $("#status").ajaxComplete(function(event, request, settings){ if(msg == 'OK') { $("#username").removeClass('object_error'); // if necessary $("#username").addClass("object_ok"); $(this).html(' '); } else { $("#username").removeClass('object_ok'); // if necessary $("#username").addClass("object_error"); $(this).html(msg); } }); } }); } else { $("#status").html('The username should have at least 3 characters.'); $("#username").removeClass('object_ok'); // if necessary $("#username").addClass("object_error"); } }); });  

Ce que je veux, c’est que le formulaire ne soit pas posté si le nom d’utilisateur n’est pas disponible . J’ai essayé en utilisant return false; dans IF CONDITION mais cela échoue. S’il vous plaît suggérer une autre méthode. Toute aide serait appréciée.

sur submit, retour false, peu importe ce qui est fait, si le champ est bon, envoyez votre formulaire en ajax, si son contenu est mauvais, erroné ou quoi que vous ayez besoin

 

L’utilisation de return false pour empêcher la soumission d’un formulaire ne fonctionne pas très bien dans jQuery. Utilisez event.preventDefault () à la place, essayez ce qui suit:

 $(function() { $('#formid').submit(function(event) { if ($("#emailch").val().length < 3) { event.preventDefault(); } }); }); 

Définissez un indicateur (variable) dans votre fonction de success sur false (par exemple) si le nom d’utilisateur n’est pas disponible. Vérifiez ensuite cet indicateur dans le gestionnaire onsubmit votre formulaire et, s’il est égal à false, renvoyez false à partir de ce gestionnaire d’événements. Votre formulaire ne sera pas soumis.