Allan007
Messages postés82Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention12 février 2012
-
1 avril 2008 à 15:10
Allan007
Messages postés82Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention12 février 2012
-
2 avril 2008 à 17:39
Bonjour à tous,
je débute en JS, j'ai récupérer par ci et par la des vérifications de formulaire pour me donner une idée puis j'en ai fait un a ma sauce.
J'ai un problème, le JS vérifie tous les champs, mais quand tous les champs sont correct, il n'envoie pas le formulaire...
Je vous colle le code source, si vous pouvez me trouver une solution ça serais vraiment gentil car je ne comprend vraiment pas ....
JavaScript:
function FormVerifeIC(index_connection) {
if (!FormAllVerifeIC(index_connection.TB_index_pseudo) || FormAllVerifeIC(index_connection.TB_index_mdp)) {
return false;
}
else {
index_connection.submit();
return true;
}
}
function FormAllVerifeIC(input) { if (input.value null || input.value.length 0) {
input.style.backgroundColor = "#ff7373";
}
var str = input.value;
for (var i = 0; i < str.length;i++){
var ch = str.substring(i,i+1);
if ( ch == " ") {
input.style.backgroundColor = "#ff7373";
}
else {
input.style.backgroundColor = "#9fd69c";
return true;
}
}
return true;
}
Allan007
Messages postés82Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention12 février 2012 2 avril 2008 à 17:39
Super merci a vous bultez & PetoleTeam !
Je vous colle le code source fonctionnel pour ceux qui veulent faire une vérification des champs avec changement de background.
Vous pouvez ajouter autant de champs que vous voulez il suffit juste de dupliquer les champs a vérifier dans FormVerifeIC (en les renommant par vos champs bien sur !)
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 1 avril 2008 à 15:35
Bonjour,
if ( !FormAllVerifeIC(index_connection.TB_index_pseudo) ||
!FormAllVerifeIC(index_connection.TB_index_mdp))
tu compliques un peu, me semble-t-il... mais bon...
normalement, c'est dans le onsubmit du formulaire
qu'on fait les contrôles, submit() du formulaire en javascript
est à éviter ( si javascript désactivé... par exemple ? )
Allan007
Messages postés82Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention12 février 2012 1 avril 2008 à 16:27
Le php ne cause aucune erreur, je le développe depuis pas mal d'année...
avec ton action dans le form le message s'affiche SI le bouton du formulaire est de type="submit" mais s'il est en type="button" ça ne marche pas.
Je l'ai mit en type="button" car en type="submit" les informations sont transmise a ma page php sans aucune vérification des champs...
function FormVerifeIC() {
if (!FormAllVerifeIC(index_connection.TB_index_pseudo) || FormAllVerifeIC(index_connection.TB_index_mdp)) {
return false;
}
else {
index_connection.submit();
return true;
}
}
function FormAllVerifeIC(input) { if (input.value null || input.value.length 0) {
input.style.backgroundColor = "#ff7373";
}
var str = input.value;
for (var i = 0; i < str.length;i++){
var ch = str.substring(i,i+1);
if ( ch == " ") {
input.style.backgroundColor = "#ff7373";
}
else {
input.style.backgroundColor = "#9fd69c";
return true;
}
}
return true;
}
C'est bizzard car le bouton est de type submit mais ne transmet pas les informations a la page PHP.
Le JS fonctionne mais le transmet les informations ...
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 1 avril 2008 à 16:45
petites imprécisions....
<form name= "index_connection" onsubmit="return(FormVerifeIC());"
action=" javascript:alert('ok'); " method ="post">
action= message javascript donc pour le test !
function FormVerifeIC() {
if ( !FormAllVerifeIC( document .index_connection.TB_index_pseudo) ||
!FormAllVerifeIC( document.index_connection.TB_index_mdp)) {
return false;
}
else {
return true; // et pas de SUBMIT du formulaire ! ça le fait tout seul... }
...
function FormAllVerifeIC(input) { if (input.value null || input.value.length 0) {
input.style.backgroundColor = "#ff7373";
return false;
}
Allan007
Messages postés82Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention12 février 2012 1 avril 2008 à 17:13
Super !!! merci à toi je viens d'y arriver ça fonctionne !!
Il y a juste un petit problème,
si je met le return false; dans l'IF de la fonction FormAllVerifeIC il ne change qu'une seule couleur d'arriere plant sans envoyer le formulaire.
Si je ne l'y met pas, il envoi le formulaire...
Comment faire pour que la couleur d'arrière plant s'applique a tous les champs où se trouve l'erreur ?
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 1 avril 2008 à 19:00
Bonjour à tous,
fais une gestion par comptage du
nombre d'erreurs, par exemple
//--------------------- function
FormVerifeIC(){
var Erreur = 0; // Init Erreur a
zero
Erreur +=
FormAllVerifeIC(document.index_connection.TB_index_pseudo);
Erreur +=
FormAllVerifeIC(document.index_connection.TB_index_mdp);
return( Erreur ==
0);
// retourne true si pas d'erreur
}
et ta fonction FormAllVerifeIC devient
//----------------------------- function
FormAllVerifeIC(input){ if (input.value null || input.value.length 0) {
input.style.backgroundColor = "#ff7373";
return (1);
}
var str = input.value;
for (var i = 0; i <
str.length;i++){
var ch = str.substring(i,i+1);
if ( ch == " ")
{
input.style.backgroundColor = "#ff7373";
return (1);
}
else {
input.style.backgroundColor = "#9fd69c";
return (0);
}
}
return (0);
}
PS
: je n'ai pas trop saisi ta deuxième fonction, il me semble que si le premier caractère n'est pas un espace cela retourne pas d'erreur, mais si c'est le deuxième ???
...mais bon...
;O)
Allan007
Messages postés82Date d'inscriptionsamedi 6 décembre 2003StatutMembreDernière intervention12 février 2012 1 avril 2008 à 19:17
Merci pour ta réponse Petole Team,
je viens d'essayer ton code source et ça ne fait aucune vérification, ça transmet directement les informations...
J'ai mit un if (erreur == 0) { alert("OK"); } et ça n'affiche rien ....
la 2 ème fonction je l'ai chopper sur le net, elle sert à vérifier s'il y a un ou plusieurs espace avant le texte.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 1 avril 2008 à 19:26
SORRY je n'ai pas tester ton code...
<table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, la 2 ème fonction je l'ai chopper sur le net,
elle sert à vérifier s'il y a un ou plusieurs espace avant le
texte</td>
</td></tr></tbody></table>
dans
l'absolu elle vérifie si le 1st caractère est un espace et ce à cause du else
qui return( true)
for (var i =
0; i < str.length;i++){
var ch = str.substring( i, i+1);
if ( ch == "
") {
input.style.backgroundColor = "#ff7373";
return false;
}
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 1 avril 2008 à 19:32
Je viens de tester le code c'est OK !
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, J'ai mit un if (erreur ==
0)</td>
</td></tr></tbody></table> Attention
Erreur == 0
;O)