Forcer le focus dans une zone de texte
Bonjour,
j'ai plusieurs zone de texte <input type = text> dans mon formulaire qui doivent contenir soit des numéro de téléphone/fax ou des adresse mail.
j'ai un script javascript qui vérifie la validité de la saisie (qui marche impeccable pour les numéro mais qui déconne un peu pour le mail même si elle est correct le msg saffiche) .Je souhaite forcer le focus à la zone de saisie tant quelle est incorrect mais je n'y arrive pas.
Voici mon code javascript :
if (info.id =="tel" || info.id =="fax" || info.id =="telC" || info.id =="faxC")
{
RegExp= /^0[1-68][0-9]{8}$/;
}
else
{
RegExp= /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;
}
if(!RegExp.test(info.value))
{
if(!document.getElementById(idEtoile))
{
var spanEtoile = document.createElement("span");
spanEtoile.innerHTML = "* Saisie incorrecte";
spanEtoile.className = "messInfo";
spanEtoile.id = "etoile"+info.id;
info.parentNode.appendChild(spanEtoile);
alert("Le champs "+info.id+" est incorrect !!!");
var libelle = document.getElementById(idLbl).innerHTML;
listeErreurs[idEtoile] = libelle;
majMessagesErreurs(info, false);
}
}
else
{
if(document.getElementById(idEtoile))
{
var suprimer = document.getElementById(idEtoile);
info.parentNode.removeChild(suprimer);
listeErreurs[idEtoile] = null;
majMessagesErreurs(info, true);
}
}
voici une partie de mon HTML:
<tr>
<td class='Style5'><div align='right'>Téléphone contact :</div></td>
<td colspan='2' class='Style5'><div align='left'>
<?
echo "<input type='text' name='telContact' id='telC' size=30 value='$result[16]' onblur='validerCoord(this)'>";
?>
</div></td>
<td class='Style5'><div align='right'>Fax contact :</div></td>
<td colspan='2' class='Style5'><div align='left'>
<?
echo "<input type='text' name='faxContact' id='faxC' size=30 value='$result[17]' onblur='validerCoord(this)'>";
?>
</div></td>
</tr>
<tr>
<td class='Style5'><div align='right'>Mail contact :</div></td>
<td colspan='2' class='Style5'><div align='left'>
<?
echo "<input type='text' name='mailContact' id='mailC' size=40 value='$result[18]' onblur='validerCoord(this)'>";
?>
</div></td>
j'ai plusieurs zone de texte <input type = text> dans mon formulaire qui doivent contenir soit des numéro de téléphone/fax ou des adresse mail.
j'ai un script javascript qui vérifie la validité de la saisie (qui marche impeccable pour les numéro mais qui déconne un peu pour le mail même si elle est correct le msg saffiche) .Je souhaite forcer le focus à la zone de saisie tant quelle est incorrect mais je n'y arrive pas.
Voici mon code javascript :
if (info.id =="tel" || info.id =="fax" || info.id =="telC" || info.id =="faxC")
{
RegExp= /^0[1-68][0-9]{8}$/;
}
else
{
RegExp= /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;
}
if(!RegExp.test(info.value))
{
if(!document.getElementById(idEtoile))
{
var spanEtoile = document.createElement("span");
spanEtoile.innerHTML = "* Saisie incorrecte";
spanEtoile.className = "messInfo";
spanEtoile.id = "etoile"+info.id;
info.parentNode.appendChild(spanEtoile);
alert("Le champs "+info.id+" est incorrect !!!");
var libelle = document.getElementById(idLbl).innerHTML;
listeErreurs[idEtoile] = libelle;
majMessagesErreurs(info, false);
}
}
else
{
if(document.getElementById(idEtoile))
{
var suprimer = document.getElementById(idEtoile);
info.parentNode.removeChild(suprimer);
listeErreurs[idEtoile] = null;
majMessagesErreurs(info, true);
}
}
voici une partie de mon HTML:
<tr>
<td class='Style5'><div align='right'>Téléphone contact :</div></td>
<td colspan='2' class='Style5'><div align='left'>
<?
echo "<input type='text' name='telContact' id='telC' size=30 value='$result[16]' onblur='validerCoord(this)'>";
?>
</div></td>
<td class='Style5'><div align='right'>Fax contact :</div></td>
<td colspan='2' class='Style5'><div align='left'>
<?
echo "<input type='text' name='faxContact' id='faxC' size=30 value='$result[17]' onblur='validerCoord(this)'>";
?>
</div></td>
</tr>
<tr>
<td class='Style5'><div align='right'>Mail contact :</div></td>
<td colspan='2' class='Style5'><div align='left'>
<?
echo "<input type='text' name='mailContact' id='mailC' size=40 value='$result[18]' onblur='validerCoord(this)'>";
?>
</div></td>
Configuration: Windows XP Firefox 2.0.0.20
1 réponse
-
simple :
si ca correspond pas a ce que tu veut (cf. ta fonction) bin ca donne
idEtoile.focus()
juste avant de quitter la fonction :)
je ne suis pas sur du .focus mais c'est dans ce gout la-
-
@zeOooun autre problème dans mon code javascript même quand le mail saisi est au bon format l'erreur s' affiche
quelqu'un saurait pourquoi??
-