par
cagou2 » 09 févr. 2007, 08:57
Bonjour,
Je finis de m'arracher les cheveux sur un jvs de contrôle de saisie. Le voici (je vous épargne le détail de tous les ctrl...)
Code : Tout sélectionner
function VerifSaisie(champ,valeur,type_champ,select){
var msg = '' ;
var champ_label = 'lab_'+champ ;
var champ_msg = champ+'_err';
//début des contrôles : caractères spéciaux (* et % sont acceptés dans le cas d'un champ utilisé pour une recherche)
if (select=='select') {
var exp=new RegExp("[^a-zA-Z0-9\*\%]","g");
if (exp.test(valeur) ) {msg='Les caractères spéciaux sauf * et % sont interdits' ; }
}
else {
var exp=new RegExp("[^a-zA-Z0-9]","g");
if (exp.test(valeur) ) {msg='Les caractères spéciaux sont interdits' ; }
}
// tout plein d'autres ctrl ...
// Contrôles finis affichage des messages d'alerte si la variable msg est non vide
if (msg != '') {
document.getElementById(champ_label).style.color='red' ;
document.getElementById(champ_msg).style.visibility='visible' ;
document.getElementById(champ_msg).value=msg ;
document.getElementById(champ).value="";
document.getElementById(champ).focus();
}
else {
document.getElementById(champ_label).style.color='black' ;
document.getElementById(champ_msg).style.visibility='hidden' ;
document.getElementById(champ_msg).value="" ;
}
Tout se passe très bien (aucune erreur jvs) mais la dernière instruction redonnant le focus au champ contrôlé n'est pas prise en compte. C'est le champ suivant qui l'a comme si de rien. C'est valable sur FF comme IE
Voici le code HTML (allégé) : à savoir que mon form est dans une DIV est-ce que cela peut jouer ?
Code : Tout sélectionner
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="fr">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<head>
<title>SIMABO </title>
<link rel="stylesheet" href="style.css" type="text/css">
<!--[if IE]>
<link rel="stylesheet" href="iestyle.css" type="text/css" />
<![endif]-->
<? if (file_exists("./UtilFonctionsJvs.js")) { ?>
<script type="text/javascript" src="UtilFonctionsJvs.js"></script>
<?}?>
</head>
<body>
<div class="pagestandard">
<form id="admin_utilisateur" method="post" action="AdminUtilisateurs.php">
<fieldset > <legend> Rechercher un utilisateur </legend>
<label id="lab_login" style="color:black;"> Login <input type="text" id="login" name="login" value="" size=5 maxlength=5 onblur="VerifSaisie(this.id,this.value,'login','rech')"/></label>
<label id="lab_nom" style="color:black;"> Nom <input type="text" id="nom" name="nom" value="" maxlength=30 onblur="VerifSaisie(this.id,this.value,'nom','rech')"/></label>
<label id="lab_prenom" style="color:black;"> Prénom <input type="text" id="prenom" name="prenom" value="" maxlength=30 onblur="VerifSaisie(this.id,this.value,'prenom','rech')"/></label>
<br/>
<!-- On charge les champs cachés pour les msg d'erreurs de saisies -->
<input id="login_err" value="" readonly="disabled" style="visibility:hidden; color:red; border-style:none; background-color:white;"/>
<input id="nom_err" value="" disabled="disabled" style="visibility:hidden; color:red; border-style:none; background-color:white;"/>
<input id="prenom_err" value="" disabled="disabled" style="visibility:hidden; color:red; border-style:none; background-color:white;"/>
<br/>
<input type="submit" name="submit" value="Rechercher" />
<input type="reset" name="submit" value="Effacer"/>
</fieldset>
</form>
</div>
</div>
</body>
</html>
Est-ce que qlq a rencontré un pb similaire ou voit LE truc absolument évident à côté duquel je suis passé ? Si oui je l'aime déjà

Bonjour,
Je finis de m'arracher les cheveux sur un jvs de contrôle de saisie. Le voici (je vous épargne le détail de tous les ctrl...)
[code]
function VerifSaisie(champ,valeur,type_champ,select){
var msg = '' ;
var champ_label = 'lab_'+champ ;
var champ_msg = champ+'_err';
//début des contrôles : caractères spéciaux (* et % sont acceptés dans le cas d'un champ utilisé pour une recherche)
if (select=='select') {
var exp=new RegExp("[^a-zA-Z0-9\*\%]","g");
if (exp.test(valeur) ) {msg='Les caractères spéciaux sauf * et % sont interdits' ; }
}
else {
var exp=new RegExp("[^a-zA-Z0-9]","g");
if (exp.test(valeur) ) {msg='Les caractères spéciaux sont interdits' ; }
}
// tout plein d'autres ctrl ...
// Contrôles finis affichage des messages d'alerte si la variable msg est non vide
if (msg != '') {
document.getElementById(champ_label).style.color='red' ;
document.getElementById(champ_msg).style.visibility='visible' ;
document.getElementById(champ_msg).value=msg ;
document.getElementById(champ).value="";
document.getElementById(champ).focus();
}
else {
document.getElementById(champ_label).style.color='black' ;
document.getElementById(champ_msg).style.visibility='hidden' ;
document.getElementById(champ_msg).value="" ;
}
[/code]
Tout se passe très bien (aucune erreur jvs) mais la dernière instruction redonnant le focus au champ contrôlé n'est pas prise en compte. C'est le champ suivant qui l'a comme si de rien. C'est valable sur FF comme IE :shock:
Voici le code HTML (allégé) : à savoir que mon form est dans une DIV est-ce que cela peut jouer ?
[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="fr">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<head>
<title>SIMABO </title>
<link rel="stylesheet" href="style.css" type="text/css">
<!--[if IE]>
<link rel="stylesheet" href="iestyle.css" type="text/css" />
<![endif]-->
<? if (file_exists("./UtilFonctionsJvs.js")) { ?>
<script type="text/javascript" src="UtilFonctionsJvs.js"></script>
<?}?>
</head>
<body>
<div class="pagestandard">
<form id="admin_utilisateur" method="post" action="AdminUtilisateurs.php">
<fieldset > <legend> Rechercher un utilisateur </legend>
<label id="lab_login" style="color:black;"> Login <input type="text" id="login" name="login" value="" size=5 maxlength=5 onblur="VerifSaisie(this.id,this.value,'login','rech')"/></label>
<label id="lab_nom" style="color:black;"> Nom <input type="text" id="nom" name="nom" value="" maxlength=30 onblur="VerifSaisie(this.id,this.value,'nom','rech')"/></label>
<label id="lab_prenom" style="color:black;"> Prénom <input type="text" id="prenom" name="prenom" value="" maxlength=30 onblur="VerifSaisie(this.id,this.value,'prenom','rech')"/></label>
<br/>
<!-- On charge les champs cachés pour les msg d'erreurs de saisies -->
<input id="login_err" value="" readonly="disabled" style="visibility:hidden; color:red; border-style:none; background-color:white;"/>
<input id="nom_err" value="" disabled="disabled" style="visibility:hidden; color:red; border-style:none; background-color:white;"/>
<input id="prenom_err" value="" disabled="disabled" style="visibility:hidden; color:red; border-style:none; background-color:white;"/>
<br/>
<input type="submit" name="submit" value="Rechercher" />
<input type="reset" name="submit" value="Effacer"/>
</fieldset>
</form>
</div>
</div>
</body>
</html>
[/code]
Est-ce que qlq a rencontré un pb similaire ou voit LE truc absolument évident à côté duquel je suis passé ? Si oui je l'aime déjà :wink: