Page 1 sur 1

Focus

Posté : 23 avr. 2006, 18:40
par Photographiquement Vôtre
Bonsoir,

Je valide un formulaire par un ensemble de fonction JS :

Ce formulaire m'envoie sur une page
<form action="admin_photos_upload" id=frmPhotosAdd method=post name=frmPhotosAdd onsubmit="return validFormulaire_photos();">
La fonction de validation marche mais je n'arrive pas à retourner sur la page d'appel et avoir le focus de l'input faux.

Merci de votre aide
function validFormulaire_photos()  
{ 
    /* On récupère directement dans le formulaire la valeur qui a été (éventuellement) saisie */ 
    var Tri = document.forms['frmPhotosAdd'].elements['Tri'].value;
    	         
    /* On initialise une variable de retour */ 
    var valide = false;
   
    validFormulaire_Tri(Tri);
   

} 

function validFormulaire_Tri(valeur)  
{
	
var valide = false;

if (valeur=='')
	{
	
	alert('La case est vide'); 
		
	//window.location.replace('admin_photos_add.php');
	history.go(-1);
	document.forms['frmPhotosAdd'].elements['Titre'].focus();
			
	}
else
	{
	alert('La case n\'est pas vide '); 	
	valide = true;	
	
	}
return valide;		
	
}

Posté : 23 avr. 2006, 23:43
par Truc
Salut,

1. tu n'as pas d'extension pour le fichier de traitement "dmin_photos_upload"

2.
/* On initialise une variable de retour */
    var valide = false;
mais jamais tu ne la retourne dans cette fonction.

donc le formulaire est toujours validé

Posté : 24 avr. 2006, 09:15
par Invité
Bonjour,

Merci cela marche .

Si j'applique la fonction à plusieurs zones de texte, comment puis je récupérer la zone est testée pour adapter le texte de l'alert et avoir le bon focus.

Merci d'avance

Posté : 24 avr. 2006, 10:18
par Invité
Résolu

Posté : 25 avr. 2006, 18:33
par Photographiquement Vôtre
Bonjour,

Je réécrit mon message car je suis passé en Invité.

J'ai un souci quand je met quelque chose dans la zone text Legende et rien dans zones Tri et Réf Photo, j'ai bien des messages comme quoi les cases sont vides mais il me transfère sur la feuille indiquée dans le formulaire.

Merci de m'expliquer en détail ce qui ne va pas et si possible me fournir un code corrigé.

Merci d'avance

Mes fonctions
function validFormulaire_photos()  
{ 
    /* On récupère directement dans le formulaire la valeur qui a été (éventuellement) saisie */ 
    var Tri = document.forms['frmPhotosAdd'].elements['Tri'].value;
    var RefPhoto = document.forms['frmPhotosAdd'].elements['RefPhoto'].value;
    var Legende = document.forms['frmPhotosAdd'].elements['Legende'].value;

    /* On initialise une variable de retour */ 
    var valide=false ;
      
    valide=validFormulaire_Vide(Tri,obj_tri);
    valide=validFormulaire_Vide(RefPhoto,obj_refphoto);
    valide=validFormulaire_Vide(Legende,obj_legende);
    
return valide;	
 
} 


function validFormulaire_Vide(valeur,objet)  
{
var valide = false;	

if (valeur=='')
	{
	alert('La case ' +objet+ ' est Vide ');
	document.forms['frmPhotosAdd'].elements[objet].focus();
	}
else
	{
	valide = true;	
	}
return valide;		
}
Mon formulaire (début)
<form action="admin_photos_upload.php" id=frmPhotosAdd method=post name=frmPhotosAdd onsubmit="return validFormulaire_photos();">

Posté : 25 avr. 2006, 21:36
par Truc
Tu alignes les tests:
valide=validFormulaire_Vide(Tri,obj_tri);
valide=validFormulaire_Vide(RefPhoto,obj_refphoto);
valide=validFormulaire_Vide(Legende,obj_legende); 
donc seule la dernière valeur est prise en compte puisqu'elle ecrase le résultat des tests précédents.
valide=validFormulaire_Vide(Tri,obj_tri);
if(valide)
  valide=validFormulaire_Vide(RefPhoto,obj_refphoto);
if (valide)
   valide=validFormulaire_Vide(Legende,obj_legende); 
sinon si le 1er test renvoie "faux" et le dernier "vrai" alors le formulaire est quand même validé.

Posté : 25 avr. 2006, 23:17
par Photographiquement Vôtre
Encore une fois merci