Javascript: focus()
gmarchal
-
patatosaure -
patatosaure -
Bonjour,
Dans un formulaire, j'ai un champs texte qui recoit une date. J'ai écrit une fonction javascript pour vérifier la valider de la date. Si la date est mauvaise, je voudrais que le curseur reste sur cette date, mais je n'y arrive pas.
J'ai beau essayer les 3 différentes versions de focus(), le curseur arrive toujours sur le champs suivant.
Voici une partie du code HTML
<form name='titulaire'>
<input ... >
<input type='text' name='Dnaiss' size='15' maxlength='10' onBlur='js_VerifDate(this.form.Dnaiss)'> (jj/mm/aaaa)
<winput ... >
</form>
Voici le Javascript:
function js_VerifDate(dat) {
si (le test de la date est mauvais) {
alert("Date "+dat.value+" non valable\n");
// dat.focus();
// document.forms.titulaire.elements[dat].focus();
// document.forms.titulaire[dat].focus();
return false;
}
return true;
}
Dans un formulaire, j'ai un champs texte qui recoit une date. J'ai écrit une fonction javascript pour vérifier la valider de la date. Si la date est mauvaise, je voudrais que le curseur reste sur cette date, mais je n'y arrive pas.
J'ai beau essayer les 3 différentes versions de focus(), le curseur arrive toujours sur le champs suivant.
Voici une partie du code HTML
<form name='titulaire'>
<input ... >
<input type='text' name='Dnaiss' size='15' maxlength='10' onBlur='js_VerifDate(this.form.Dnaiss)'> (jj/mm/aaaa)
<winput ... >
</form>
Voici le Javascript:
function js_VerifDate(dat) {
si (le test de la date est mauvais) {
alert("Date "+dat.value+" non valable\n");
// dat.focus();
// document.forms.titulaire.elements[dat].focus();
// document.forms.titulaire[dat].focus();
return false;
}
return true;
}
A voir également:
- Javascript: focus()
- Telecharger javascript - Télécharger - Langages
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
- Afficher un tableau javascript en html ✓ - Forum Javascript
- Javascript arrondi - Forum Javascript
- Javascript arrondir à 2 décimales - Forum Webmastering
1 réponse
Effectivement, firefox ne le fait pas (IE , oui).
Solution :
Une variable globale :
<form name='titulaire'>
<input ... >
<input type='text' name='Dnaiss' size='15' maxlength='10' onBlur='js_VerifDate(this.form.Dnaiss)'> (jj/mm/aaaa)
<winput ... >
</form>
Voici le Javascript:
var IsDateCorrect=1;
function js_VerifDate(dat) {
si (le test de la date est mauvais) {
alert("Date "+dat.value+" non valable\n");
IsDateCorrect=0;
return false;
dat.focus();
}
return true;
}
function js_Defocus(dat){
if(!IsDateCorrect)
dat.focus();
}
Solution :
Une variable globale :
<form name='titulaire'>
<input ... >
<input type='text' name='Dnaiss' size='15' maxlength='10' onBlur='js_VerifDate(this.form.Dnaiss)'> (jj/mm/aaaa)
<winput ... >
</form>
Voici le Javascript:
var IsDateCorrect=1;
function js_VerifDate(dat) {
si (le test de la date est mauvais) {
alert("Date "+dat.value+" non valable\n");
IsDateCorrect=0;
return false;
dat.focus();
}
return true;
}
function js_Defocus(dat){
if(!IsDateCorrect)
dat.focus();
}
Il faut evidemment rajouter un onFocus='js_Defocus(this.form.Dnaiss);' aux autres champs