J'ai besoin d'une correction d'écriture pour cette fonction car je ne connais pas bien le js:
But: en appuyant sur "enter" on passe d'un champ à l'autre puis à la fin le formulaire est envoyé
par <FORM action=$action name=formulaire method=POST onSubmit="return submit_focus();">.
function submit_focus(){
if(document.formulaire.fact_num.value =='') { document.getElementById('fact_num').focus();return false;}
elseif(document.formulaire.date_fact.value =='') {document.getElementById('date_fact').focus();return false;}
elseif(document.formulaire.montant.value =='') {document.getElementById('montant').focus();return false;}
elseif(document.formulaire.tx_tva.value =='') {document.getElementById('tx_tva').focus();return false;}
else return true;
}
En retour j'ai un "missing before statement" sur le 1er elseif. MERCI
Publicité
Posté le 27-06-2006 à 00:48:03
xtof_83
Freeride Spirit
Posté le 27-06-2006 à 08:23:40
Bon déjà un truc que je comprend pas :
tu utilises
Code :
document.getElementById('fact_num')
ce qui est nickel
Mais juste avant tu nous fait un immonde :
Code :
document.formulaire.fact_num
change ça...Bon pour lerreur, faut voir...
gatsu35
Blablaté par Harko
Posté le 27-06-2006 à 08:31:12
La réponse est simple : Où tu as vu qu'il y avait un elseif dans le javascript
et puis il est pas un peu overlourd ton truc là ?
Code :
function submit_focus() {
var ArrElt = new Array("fact_num","datefact","montant", "trucautre" ); //un ptit tableau avec les id des champs
for (var i=0; i<ArrElt.length;i++) { //une ptite boucle
var Elt = document.getElementById(ArrElt[i]); //on récupère notre champ
if (Elt) { //on teste si l'élément récupéré existe dans la page
if (Elt.value == "" ) { // si il est vide
Elt.focus(); //on fait un focus sur lui
returnfalse; // on retourne false pour ne pas envoyer le formulaire
}
}
}
returntrue; //on retourne true à la fin
}
maintenant tu rajoutes les éléments dans le tableau et basta
Maintenant il te reste plus qu'à ajouter quelques features comme : Le chance qui change de couleur de fond, et un petit message d'erreur
var ArrElt = new Array("fact_num","datefact","montant", "trucautre" ); //un ptit tableau avec les id des champs
for (var i=0; i<ArrElt.length;i++) { //une ptite boucle
var Elt = document.getElementById(ArrElt[i]); //on récupère notre champ
if (Elt) { //on teste si l'élément récupéré existe dans la page
if (Elt.value == "" ) { // si il est vide
Elt.focus(); //on fait un focus sur lui
returnfalse; // on retourne false pour ne pas envoyer le formulaire
}
}
}
returntrue; //on retourne true à la fin
}
if (Elt.value == "") { // si il est vide
Tiens........ J'ai appris un peu plus ce soir avec cet exemple. Il y a 2 solutions pour récupérer des valeurs d'un formulaire. Je me coucherai moins bête(avec la belle). Je comprend pourquoi l'exemple donné au départ parraissais lourd.
J'ai entouré de bleu une partie de code. Ca m'a l'air pourtant bien mais cette partie me génère une erreur:
parse error, unexpected T_CONSTANT_ENCAPSED_STRING
Je vais chercher pourquoi ! Merci pour l'apprentissage.
Message édité par thierryR le 27-06-2006 à 20:42:00
gatsu35
Blablaté par Harko
Posté le 27-06-2006 à 21:10:43
On pourrait voir le code adapté a ta facon ?
thierryR
J'aime les bretzels
Posté le 27-06-2006 à 21:39:38
Mais oui, sans souci. Voila pour le js
$scriptJS=
"<script type='text/javascript'>
function submit_focus(){
var T_elemt = new Array('fact_num','date_fact','montant', 'tx_tva' ); //un ptit tableau avec les id des champs
for (var i=0; i<T_elemt.length;i++) { //une ptite boucle
var Elt = document.getElementById(T_elemt[i]); //on récupère notre champ
if (Elt) { //on teste si l'élément récupéré existe dans la page
if (Elt.value == "" ) { // si il est vide
Elt.focus(); //on fait un focus sur lui
return false; // on retourne false pour ne pas envoyer le formulaire
}
}
}
return true; //on retourne true à la fin
}
</script> ";
j'ai trouvé: c'est les "" qui viennent en superposition des " du script. J'ai remplacé par des '' et c'est bon.
quoique je me demande si l'inverse ne serait pas meilleur Je n'ai plus d'erreur Merci à tous
Message édité par thierryR le 27-06-2006 à 21:53:08
gatsu35
Blablaté par Harko
Posté le 27-06-2006 à 23:31:49
C'est quoi cette merde ???????????
attend c'est quoi ce caca bouseux que tu me fais là bordel
déjà il vaut mieux encadrer le script par des simples quotes comme ça tu casses mon code ;
Code :
$scriptJS=
'<script type="text/javascript">
function submit_focus(){
var T_elemt = new Array("fact_num","date_fact","ontant","tx_tva" ); //un ptit tableau avec les id des champs
for (var i=0; i<T_elemt.length;i++) { //une ptite boucle
var Elt = document.getElementById(T_elemt[i]); //on récupère notre champ
if (Elt) { //on teste si l'élément récupéré existe dans la page
if (Elt.value == "" ) { // si il est vide
Elt.focus(); //on fait un focus sur lui
returnfalse; // on retourne false pour ne pas envoyer le formulaire
}
}
}
returntrue; //on retourne true à la fin
}
</script> '
Et à quoi ça sert de la passer dans une variable $script
tu as fumé ou quoi ?????
un script ça se met dans un fichiers JS à part (en plus c'est une fonction)
et si tu veux qu'elle soit générique, ben tu fais en sorte que tu lui passe un paramètre
mais jvois vraiment pas ce que ca vient foutre là ce $script
PS: je sais très bien que c'est du PHP et je sens de très loin que tu fais un echo au beau milieu d'une page
j'ai déjà vu assez de merde comme ça tout la journée, si c'est pour voir mon code sacagé j'ai pas trop envie
thierryR
J'aime les bretzels
Posté le 28-06-2006 à 12:35:17
T'enerve pas papy, je suis plus vieux que toi. tellement vieux que je n'ai jamais rien appris en informatique. Mon école c'est la débrouille. Je veux bien tout ce qu'on veut mais c'est pas la peine de se prendre les nerfs. Ca fait vieillir plus vite que la moyenne. Je vais donc suivre tes conseils, malgré que ça fonctionne déja. Il me reste un souci mais peut-être pas élucidable....;
Le "enter" va bien de champ en champ jusqu'a la fin ou il envoie le formulaire. Mais si je clic sur un bouton ex: "supprimer" avant le remplissage complet du formulaire;la fonction est refusée car pas envoyée. Est ce qu'un clic de souris pourrait devenir prioritaire sur le clavier? MErci de ta compréhension