dans le projet ASP.NET MVC, je veux que le bouton ne soit pas soumis si le résultat proviennent d'un code AJAX est faux.
mais il fait toujours soumettre. P>
c'est le code: < / p> et c'est le code JavaScript: p>
4 Réponses :
élaborer sur mon commentaire ci-dessus. Changer à p> et dans votre fonction de réussite, modifiez p> Pour P> if (result) {
$('#myid').closest("form").submit();
}
Je remplacerais l'élément d'entrée de bouton d'envoi avec un élément de bouton afin de cliquer sur le bouton déclencher l'événement OnClick sans soumettre le formulaire. Ensuite, lorsque vous obtenez la réponse Ajax, vous pouvez utiliser de manière conditionnelle JQuery pour soumettre le formulaire. Cela peut nécessiter un peu de bricolage pour obtenir le formulaire de l'Onclick, mais cela vous empêchera de soumettre le formulaire trop tôt, comme je soupçonne que votre problème est. et P> $('#myid').on('click', function(event) {
var data = {
CategoryName: $("#myCategoryNameId").val(),
CategoryID: $("#myCategoryId").val()
};
$.ajax({
type: 'POST',
data: JSON.stringify(data),
url: '/Category/ValidateCategoryName',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
if (result) {
$('#myid').closest('form').submit();
}
}
});
});
J'ai copié et collé d'une autre réponse pour cette partie. Bien que ce ne soit pas fonctionnellement une erreur, je suis d'accord c'est une mauvaise pratique de codage, donc je vais le réparer. Merci!
Ohh, ça marche bien, c'est exactement ce que je veux parce que ce code utilise l'ID du bouton, il suffit de modifier le type d'entrée sur le bouton au lieu de soumettre, merci man
Ce que je sais d'une très longue période est le formulaire code> code> L'action de redirection par défaut n'attend pas que AJAX a renvoyé son résultat. Vous pouvez donc utiliser une variable booléenne pour contrôler cela .. Voir le code suivant
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form> <input name="CategoryID" id="myCategoryId" type="text" value="0" /> <input name="CategoryName" id="myCategoryNameId" type="text" value="" /> <input class="btn btn-primary" id="myid" type="submit" value="Add" /> </form>
Merci @MoHammed, cela fonctionne correctement, mais j'ai de nombreuses formes dans la page, je souhaite donc utiliser l'identifiant du formulaire, mais pas fonctionner lors de l'utilisation de l'identifiant, que puis-je faire? $ ("formulaire-id '). On (" Soumettre ", fonction (e) {...}
@mustafa ID dans Sélecteur commence par # code> YA MUSTAFA ..
$ ('# formulaire-id') code> .. Mais vous devez savoir que l'ID devrait être unique .. Ceci Les moyens n'utilisent pas le même identifiant avec plusieurs éléments. Si tel est le cas, le code fonctionnera avec juste la première. Pour utiliser le sélecteur avec plusieurs éléments, utilisez
Classe code> ES au lieu de
ID code> S
moyen le plus propre de le faire:
rien ne se passe, mais le code de @MoHammed fonctionne bien
Pouvez-vous partager avec moi avec la visionneuse d'équipe. J'aimerais voir le comportement!
Vous pouvez essayer de soumettre le formulaire au lieu du bouton clic
$ .AJAX est un appel asynchrone, le formulaire est soumis longtemps avant que la fonction de réussite soit appelée. Modifiez le type de bouton à partir de
Soumettre code> à
BOUTON CODE> et envoyez le formulaire dans la fonction de réussite.
Venez penser à cela, vous pouvez également envisager de forcer $ .AJAX à être synchronisé en spécifiant ASYNC: Faux
Qu'attendez-vous que le résultat contient-il? Vous spécifiez qu'il devrait être JSON, mais vous manipulez comme un booléen