Bonsoir,
Je réalise actuellement un site en php avec base de données avec formulaire.
Je fais une double validation lors de l'envoi du formulaire: côté client en javascript et côté serveur en php avant insertion dans la base de donnée.
Pour mon formulaire je souhaite utiliser le Jquery pour valider les champs. J'ai fait un premier test avec un formulaire simplifié et je rencontre un problème:
J'ai des checkbox et radio et il faut qu'au moins une (sur le total) soit cochée (sinon j'affiche erreur).
J'arrive à traiter les checkbox et radio séparément mais pas l'ensemble.
voici le formulaire simplifié (nb: la mise en forme n'est pas terrible mais ce n'est pas ma priorité pour le moment)
"formulaire.php":
Voici maintenant le début de la partie jQuery :
Je n'ai pas mis tout le code car il est quasi identique pour le nom, prénom... et cela fonctionne bien.
Par contre j'ai essayé de travailler avec "si checkbox ou radio est checked alors "
Mais c'est de l'ordre du bidouillage..
Pouvez vous m'aider?
Et peut être me dire si je pars dans un truc trop compliqué alors qu'il y a une solution bien plus simple?
Merci d'avoir lu!
Modifié par biscott' (31 Aug 2010 - 16:11)
Je réalise actuellement un site en php avec base de données avec formulaire.
Je fais une double validation lors de l'envoi du formulaire: côté client en javascript et côté serveur en php avant insertion dans la base de donnée.
Pour mon formulaire je souhaite utiliser le Jquery pour valider les champs. J'ai fait un premier test avec un formulaire simplifié et je rencontre un problème:
J'ai des checkbox et radio et il faut qu'au moins une (sur le total) soit cochée (sinon j'affiche erreur).
J'arrive à traiter les checkbox et radio séparément mais pas l'ensemble.
voici le formulaire simplifié (nb: la mise en forme n'est pas terrible mais ce n'est pas ma priorité pour le moment)
"formulaire.php":
$affichage .= '
<form name="formulaire" method="POST" action="formulaire.php" class="form">
<h2> Formulaire </h2><br />
<table id="tableau" >
<th colspan="4" height="50px">Identité</th>
<tr>
<td>Nom:</td>
<td> <input type="text" name="nom" id="nom"><span class="ErrorMess">Erreur</span></td>
<td> <label>Date :</label> </td>
<td> <input type="text" id="datepicker"><span class="ErrorMess">Erreur</span> </td>
</tr>
<tr>
<td> <input type="checkbox" name="tel" value="1" id="tel"><span class="ErrorMess">Erreur</span> </td>
<td> Tel </td>
<td> <input type="checkbox" name="mail" value="1" id="mail"></td>
<td> Mail </td>
<td></td>
</tr>
<tr>
<td colspan="4" height="30px"> choix :</td>
</tr>
<tr>
<td > <input type="radio" name="choix" value="2" id="choix1" ></td>
<td> choix1</td>
<td> <input type="radio" name="choix" value="4" id="choix2"></td>
<td> choix2</td>
</tr>
<tr >
<th colspan="4" height="60px" align="center" > <input type="submit" value="Valider"name="submit" id="valider"></th>
</tr>
</table>
</form >';
Voici maintenant le début de la partie jQuery :
<script type="text/javascript">
$(document).ready(function() {
$("#valider").click(function(){
valid = true;
if($("#nom").val() == ""){
$("#nom").next(".ErrorMess").fadeIn().text("Veuillez entrer le nom");
valid = false;
}
else if (!$("#nom").val().match(/^[a-z-\']+$/i)){
$("#nom").next(".ErrorMess").fadeIn().text("nom invalide");
valid = false;
}
...
return valid;
});
});
</script>
Je n'ai pas mis tout le code car il est quasi identique pour le nom, prénom... et cela fonctionne bien.
Par contre j'ai essayé de travailler avec "si checkbox ou radio est checked alors "
if($('#checkbox').is(':checked') || $("input").is(':checked')){
$("#checkbox").val == "" && $("#radio").val == "" {
}
});
Mais c'est de l'ordre du bidouillage..
Pouvez vous m'aider?
Et peut être me dire si je pars dans un truc trop compliqué alors qu'il y a une solution bien plus simple?
Merci d'avoir lu!

Modifié par biscott' (31 Aug 2010 - 16:11)