Jquery contrôle sur submit

  • Auteur de la discussion Auteur de la discussion webac
  • Date de début Date de début
WRInaute occasionnel
Bonjour a tous

je cherche à empecher l'envoi d'un formulaire si tous les champs ayant la classe "oblig" ne sont pas renseignés mais quoi que je fasse le formulaire se soumet quand même.

Pourriez vous me guider?

voici mon formulaire :

Code:
<form id="form1" name="form1" method="post" action="test.php">
<fieldset>
<legend>Saisie Tract</legend>
<p align="center">Titre du Tract :
<input type="text" name="Titre" id="Titre" class="oblig"/>
</p>
<div id="four">
<p align="center">Fournisseur : 
<input type="text" name="Fournisseur[]" id="Fournisseur" class="oblig"/>
</p>
<div id="conteneur">
<div id="article"><p>D&eacute;signation :
<input name="Designation[]" type="text" id="Designation" size="15" class="oblig"/> 
Conditionnement : 
<input name="Conditionnement[]" type="text" id="Conditionnement" size="10" class="oblig"/> 
PVC : 
<input name="Pvc[]" type="text" id="Pvc" size="6" class="oblig"/> 
Qte Commande : 
<input name="QteCommande[]" type="text" id="QteCommande[]" size="5" />
<img src="img/plus.png" alt="Ajouter une Ligne" name="plus" id="plus" onClick="Clone_Element('article')"/>
<img src="img/moins.png" alt="Supprimer la derni&egrave;re ligne" name="moins" id="moins" onClick="Suppr_Element()"/>
</div>
</div>
</div>
<p>
<input type="submit" name="Envoyer" id="Envoyer" value="Envoyer" />
</p>
</fieldset>
</form>

et la fonction :

Code:
$('#form1').submit(function(){
     var ret = true;
	 $('.oblig').each(function() {
		if($(this).val() == "") ret = false	;					  
	 })
         return ret;})

merci d'avance.
 
WRInaute occasionnel
Pour résoudre ce genre de problème il faut avancer en pas à pas :

test

Code:
$('#form1').submit(function(){
         return false;})

si cela bloque bien c'est c'est le problème ne ce pause pas ici.

Code:
$('#form1').submit(function(){
     var ret = true;
    $('.oblig').each(function() {
      if($(this).val() == "") ret = false   ;  
})
alert(ret);
         return ret;})

le but et de savoir si le problème ne viendrait pas du fait que tu n'as jamais false.

Code:
$('#form1').submit(function(){
     var ret = true;
    $('.oblig').each(function() {
      if($(this).val() == "") {
ret = false   ; 
    })
alert(ret);
         return ret;})

Code:
$('#form1').submit(function(){
     var ret = true;
    $('.oblig').each(function() {
      if($(this).val() == "") {
ret = false   ;  alert('un champs pas bon');
    })
         return ret;})

s'il n'affiche jamais 'un champs pas bon' tu peux faire

Code:
$('#form1').submit(function(){
     var ret = true;
    $('.oblig').each(function() { alert('champs tester');
      if($(this).val() == "") {  
ret = false   ;  alert('un champs pas bon');
    })
         return ret;})

ainsi tu vois le nombre de fois ou tu passe dans la fonction.


Conclusion, quand tu as un problème il faut toujours faire du pas à pas et du découpage, cela de plus en plus pousser, non seulement cela te permettra de trouver la solution, mais surtout tu comprendra pourquoi comment cela marche.
 
WRInaute occasionnel
[Résolu]Jquery contrôle sur submit

le code était évalué avant la création du DOM j'ai donc tout mis entre

Code:
$(document).ready(function() {}
 
Discussions similaires
Haut