Désactivation et réactivation d'un submit en Jquery
Résolu/Fermé
smoky184
Messages postés
123
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
22 janvier 2014
-
4 janv. 2014 à 13:06
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 22 janv. 2014 à 13:49
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 22 janv. 2014 à 13:49
A voir également:
- Désactivation et réactivation d'un submit en Jquery
- Desactivation compte zimbra - Accueil - Piratage
- Comment reactiver un compte facebook - Guide
- Comment réactiver un compte instagram - Guide
- Désactiver le chiffrement de bout en bout messenger - Forum Facebook Messenger
- Messenger chiffrement de bout en bout. ✓ - Forum Facebook Messenger
5 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
13 janv. 2014 à 23:35
13 janv. 2014 à 23:35
une solution en mémorisant les erreurs dans un array
si array vide on active le bouton
(je n'ai pas testé )
si array vide on active le bouton
(je n'ai pas testé )
jQuery(document).ready(function($){ var array_erreur=new Array(); $(".input_saisies").blur((function(){ //tu mets class="input_saisies" à chaque input //cette fonction va verifier à chaque changement dans les input que l'array des erreurs est vide pour activer le bt submit if(array_erreur.length > 0){ $("#envoyer").prop("disabled", true); }else{ $("#envoyer").prop("disabled", false); } } $("#journal").blur(function(){ if($("#journal").val() !="" && !$("#journal").val().match(/^[0-9]+(\.[0-9]+)?$/)){ $(".error-message").eq(0).fadeIn().text(""); $("#journal").css("border","2px solid #FF0000"); jAlert('<center>Seuls <strong>les chiffres</strong> <em>[0-9]</em> et <strong>les points</strong> <em>[.]</em> sont acceptés !<br> Merci de corriger le total des espèces enregistrés</center>') array_erreur['journal']=true; //on stoque l'erreur dans l'array a l'index spécifique } else { $(".error-message").eq(0).fadeOut(); $("#journal").css("border","2px solid green"); if(array_erreur['journal'] != 'undefined' ) delete array_erreur['journal']; //si c'est maintenant ok alors qu'il y avait une erreur à cet index on l'efface } }); $("#cheques").blur(function(){ if($("#cheques").val() !="" && !$("#cheques").val().match(/^[0-9]+(\.[0-9]+)?$/)){ $(".error-message").eq(1).fadeIn().text(""); $("#cheques").css("border","2px solid #FF0000"); jAlert('<center>Seuls <strong>les chiffres</strong> <em>[0-9]</em> et <strong>les points</strong> <em>[.]</em> sont acceptés !<br>Merci de corriger le total de vos chèques</center>'); array_erreur['cheques']=true; } else { $(".error-message").eq(1).fadeOut(); $("#cheques").css("border","2px solid green"); if(array_erreur['cheques'] != 'undefined' ) delete array_erreur['cheques']; } }); etc......
smoky184
Messages postés
123
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
22 janvier 2014
9
20 janv. 2014 à 09:38
20 janv. 2014 à 09:38
Bon j'ai finalement changé de méthode. Le principe ne sera plus de désactiver le bouton mais d'annuler l'événement "submit" avec
comme ceci :
Ce code est fonctionnel pour les personnes que cela intéresse.
"preventDefault();"
comme ceci :
jQuery(document).ready(function($){ $("#form1").submit(function(event){ if($("#journal").val() !="" && !$("#journal").val().match(/^[0-9]+(\.[0-9]+)?$/)) { $(".error-message").eq(0).fadeIn().text(""); $("#journal").css("border","2px solid #FF0000"); jAlert('<center>Seuls <strong>les chiffres</strong> <em>[0-9]</em> et <strong>les points</strong> <em>[.]</em> sont acceptés !<br> Merci de corriger le total des espèces enregistrés</center>') event.preventDefault(); } else { $(".error-message").eq(0).fadeOut(); $("#journal").css("border","2px solid green"); } if($("#cheques").val() !="" && !$("#cheques").val().match(/^[0-9]+(\.[0-9]+)?$/)) { $(".error-message").eq(1).fadeIn().text(""); $("#cheques").css("border","2px solid #FF0000"); jAlert('<center>Seuls <strong>les chiffres</strong> <em>[0-9]</em> et <strong>les points</strong> <em>[.]</em> sont acceptés !<br>Merci de corriger le total de vos chèques</center>'); event.preventDefault(); } else { $(".error-message").eq(1).fadeOut(); $("#cheques").css("border","2px solid green"); } }); });
Ce code est fonctionnel pour les personnes que cela intéresse.
Utilisateur anonyme
12 janv. 2014 à 05:07
12 janv. 2014 à 05:07
Je ne comprend pas ce que tu veux. Que le boutton se désactive si seulement survient une erreur?
smoky184
Messages postés
123
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
22 janvier 2014
9
Modifié par smoky184 le 12/01/2014 à 11:29
Modifié par smoky184 le 12/01/2014 à 11:29
Bonjour Sunr
Alors simplement, j'aimerais qu'il soit impossible d'envoyer le formulaire si au moins une erreur est trouvée.
Je crois qu'il existe "each" ou "try" qui pourraient m'aider mais je ne les connais pas
Alors simplement, j'aimerais qu'il soit impossible d'envoyer le formulaire si au moins une erreur est trouvée.
Je crois qu'il existe "each" ou "try" qui pourraient m'aider mais je ne les connais pas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
12 janv. 2014 à 22:37
12 janv. 2014 à 22:37
Eh ben, ton code fonctionne très bien si tu supprimes la ligne du jAlert.
Je ne comprend pas pourquoi, mais au moins nous avons trouvé le problème. Je te reviens avec plus d'info.
jAlert('<center>Seuls <strong>les chiffres</strong> <em>[0-9]</em> et <strong>les points</strong> <em>[.]</em> sont acceptés !<br> Merci de corriger le total des espèces enregistrés</center>')//Ne fonctionne pas!!!
Je ne comprend pas pourquoi, mais au moins nous avons trouvé le problème. Je te reviens avec plus d'info.
smoky184
Messages postés
123
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
22 janvier 2014
9
Modifié par smoky184 le 13/01/2014 à 02:19
Modifié par smoky184 le 13/01/2014 à 02:19
En faite cela fonctionne également avec le Jalert(). Le problème est en réalité lié au fait que si tu entre une erreur sur une ligne le bouton se désactive mais si juste après tu entre un chiffre correctement même sans corriger l'erreur précédente le bouton se réactive quand même.
J'ai sûrement une erreur avec la manière de tourner le code...
J'ai sûrement une erreur avec la manière de tourner le code...
Et ce pour chaque champs de texte? Pourtant là ca marche (sans jAlert):
http://jsfiddle.net/LHBw6/1/
http://jsfiddle.net/LHBw6/1/
smoky184
Messages postés
123
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
22 janvier 2014
9
16 janv. 2014 à 09:49
16 janv. 2014 à 09:49
En faite le Jalert ne fonctionne que si tu as le "plugin_Jalert" qui permet de modifier les fenêtre d'alert justement.
Si tu n'a pas le plug le Jalert foire le reste
Si tu n'a pas le plug le Jalert foire le reste
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
20 janv. 2014 à 17:58
20 janv. 2014 à 17:58
que tu utilises la méthode de désactivation du bouton ou que tu bloques le submit cela ne résoud pas le pb que tu décris
Le problème est en réalité lié au fait que si tu entre une erreur sur une ligne le bouton se désactive mais si juste après tu entre un chiffre correctement même sans corriger l'erreur précédente le bouton se réactive quand même.
il faut que tu essayes avec la méthode que je te proposait en mémorisant les erreurs dans un array
tant que l'erreur n'est pas effacée dans l'array ça interdit l'envoi
Le problème est en réalité lié au fait que si tu entre une erreur sur une ligne le bouton se désactive mais si juste après tu entre un chiffre correctement même sans corriger l'erreur précédente le bouton se réactive quand même.
il faut que tu essayes avec la méthode que je te proposait en mémorisant les erreurs dans un array
tant que l'erreur n'est pas effacée dans l'array ça interdit l'envoi
16 janv. 2014 à 09:51
22 janv. 2014 à 11:58
22 janv. 2014 à 13:49