Jquery contrôle sur submit


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Jquery contrôle sur submit

Message le Jeu Juil 28, 2011 7:46

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: Tout sélectionner
<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: Tout sélectionner
$('#form1').submit(function(){
     var ret = true;
    $('.oblig').each(function() {
      if($(this).val() == "") ret = false   ;                
    })
         return ret;})


merci d'avance.

jv2759
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 409
Inscription: 21 Nov 2008

Re: Jquery contrôle sur submit

Message le Jeu Juil 28, 2011 11:59

Pour résoudre ce genre de problème il faut avancer en pas à pas :

test

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


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

Code: Tout sélectionner
$('#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: Tout sélectionner
$('#form1').submit(function(){
     var ret = true;
    $('.oblig').each(function() {
      if($(this).val() == "") {
ret = false   ;
    })
alert(ret);
         return ret;})


Code: Tout sélectionner
$('#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: Tout sélectionner
$('#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.


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

[Résolu]Jquery contrôle sur submit

Message le Jeu Juil 28, 2011 13:06

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

Code: Tout sélectionner
$(document).ready(function() {}


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité