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 !)
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 ? )
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 ...
<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;
}
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 ?
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)
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.
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;
}
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)