Problème validation VS label
HellBenito
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
-
HellBenito Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
HellBenito Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un petit soucis entre 2 attribut de checkbox (plusieurs successives), à savoir, name et id.
mon index traite la vérification de la manière suivante :
nbrecases = document.mail_form.case.id.length
flag = 0
for (i = 0; i < nbrecases ; i++) {
if (document.mail_form.case[i].checked) {
flag = 1}}
if (flag == 0) {
alert("Veuillez sélectionner au moins une salle.")
return false; }
Dans le formulaire, pour les checkbox suivantes (juste une pour l'exemple):
.
.
.
if ($erreur_case) {
echo(stripslashes($erreur_case));
} else
.
.
.
<table>
<?php if ($erreur_case) {echo($icone);}?>
<td>
<label for="case[2]" class="control-label">
<font size="2">cb</font>
<span class="help-block">21 places</span></label>
</td>
<td class="td_cbox">
<input class="form-control" type="checkbox"
onfocus="this.blur();"
onclick="checkbox_selected(this.mail_form)" name="case[2]"
id="case[2]" <?php if ($_GET['check'] == 'cb') { echo
'checked="checked"'; } ?> value="Sélectionnée"<?php if
($_SESSION['case'][2] == "cb") {echo(" checked");}?>>
</td>
Et en fait ca fonctionnait très bien jusqu'à l'ajout des <label>, qui font que l'erreur n'est simplement plus traité ... J'ai essayé pleiiiin de choses, changer l'ID et le NAME a tour de rôle identique ou non en fonction de plusieurs code javascript différent pour gérer les erreurs, mais ca me génère toujours le même problème...
J'ai peur que ca soit un truc stupide... ^^, merci d'avance si vous trouvé quoi!
Ben.
j'ai un petit soucis entre 2 attribut de checkbox (plusieurs successives), à savoir, name et id.
mon index traite la vérification de la manière suivante :
nbrecases = document.mail_form.case.id.length
flag = 0
for (i = 0; i < nbrecases ; i++) {
if (document.mail_form.case[i].checked) {
flag = 1}}
if (flag == 0) {
alert("Veuillez sélectionner au moins une salle.")
return false; }
Dans le formulaire, pour les checkbox suivantes (juste une pour l'exemple):
.
.
.
if ($erreur_case) {
echo(stripslashes($erreur_case));
} else
.
.
.
<table>
<?php if ($erreur_case) {echo($icone);}?>
<td>
<label for="case[2]" class="control-label">
<font size="2">cb</font>
<span class="help-block">21 places</span></label>
</td>
<td class="td_cbox">
<input class="form-control" type="checkbox"
onfocus="this.blur();"
onclick="checkbox_selected(this.mail_form)" name="case[2]"
id="case[2]" <?php if ($_GET['check'] == 'cb') { echo
'checked="checked"'; } ?> value="Sélectionnée"<?php if
($_SESSION['case'][2] == "cb") {echo(" checked");}?>>
</td>
Et en fait ca fonctionnait très bien jusqu'à l'ajout des <label>, qui font que l'erreur n'est simplement plus traité ... J'ai essayé pleiiiin de choses, changer l'ID et le NAME a tour de rôle identique ou non en fonction de plusieurs code javascript différent pour gérer les erreurs, mais ca me génère toujours le même problème...
J'ai peur que ca soit un truc stupide... ^^, merci d'avance si vous trouvé quoi!
Ben.
A voir également:
- Problème validation VS label
- Udp vs tcp - Guide
- Label printer logiciel - Télécharger - Outils professionnels
- Ddr3 vs ddr3l ✓ - Forum Matériel & Système
- Excel validation des données liste - Guide
- Commande en cours de validation fnac - Forum Réseaux sociaux
2 réponses
Bonjour,
L'utilisation du FOR dans les LABEL doit utiliser les ID des checkbox. (pas le NAME)
et que normalement un ID ne peut pas être sous la forme d'un array ...
Essayes ceci :
Pour ce qui est du traitement Javascript.. essayes ceci :
PS: A l'avenir ...Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
L'utilisation du FOR dans les LABEL doit utiliser les ID des checkbox. (pas le NAME)
et que normalement un ID ne peut pas être sous la forme d'un array ...
Essayes ceci :
<?php if ($erreur_case) {echo($icone);}?> <td> <label for="case_2" class="control-label"> <font size="2">cb</font> <span class="help-block">21 places</span></label> </td> <td class="td_cbox"> <input class="form-control" type="checkbox" onfocus="this.blur();" onclick="checkbox_selected(this.mail_form)" name="case[]" id="case_2" <?php if ($_GET['check'] == 'cb') { echo 'checked="checked"'; } ?> value="Sélectionnée"<?php if ($_SESSION['case'][2] == "cb") {echo(" checked");}?>> </td>
Pour ce qui est du traitement Javascript.. essayes ceci :
var chk_arr = document.getElementsByName("case[]"); var nbrecases = chk_arr.length; var flag = 0; for(k=0;k< chklength;k++){ if(chk_arr[k].checked){ flag ++; } } if (flag == 0) { alert("Veuillez sélectionner au moins une salle.") return false; }
PS: A l'avenir ...Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Ah oui désolé, je le ferai, je ne savais plus comment faire et je suis au boulot donc j'ai été vite.
D'accord, merci je vais essayé ca tout de suite. Sinon oui je sais que le FOR utilise l'ID, seulement j'ai eu un autre problème, ma vérification JS n'aimait pas s'occuper de ID différents et je suis pourtant obligé avec le label, je pensais donc utilisé le name pour le JS avec getElementsByName, mais... trop de complications.
Je vais essayé ce que tu m'a donné ;)
D'accord, merci je vais essayé ca tout de suite. Sinon oui je sais que le FOR utilise l'ID, seulement j'ai eu un autre problème, ma vérification JS n'aimait pas s'occuper de ID différents et je suis pourtant obligé avec le label, je pensais donc utilisé le name pour le JS avec getElementsByName, mais... trop de complications.
Je vais essayé ce que tu m'a donné ;)
Pas possible...
Tu as testé mon code ??
EDIT : Correction de mon code (j'ai oublié de renommer une des variables en ajustant à ton code initiale...)
Tu as testé mon code ??
EDIT : Correction de mon code (j'ai oublié de renommer une des variables en ajustant à ton code initiale...)
var chk_arr = document.getElementsByName("case[]"); var nbrecases = chk_arr.length; var flag = 0; for(k=0;k< nbrecases ;k++){ if(chk_arr[k].checked){ flag ++; } } if (flag == 0) { alert("Veuillez sélectionner au moins une salle.") return false; }