Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

comment tester un champ hidden

15 réponses
Avatar
J-F Portala
Bonjour,

j'ai créé un formulaire qui au chargement va se placer sur un champ
particulier.
Au chargement, je lance une fonction javascript qui si lme champ est défini,
lui donne le focus.
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;

Dans certains cas je dois placer ce champ en hidden.
Je dois donc donner le focus à un autre champ.
Le probleme est que le champ est défini dans le formulaire.
Je pense qu'il doit y avoir une propriété à tester qui me permettrait de ne
pas valider le test décrit plus haut.
(en fait vérifier si le champ est hidden)

Merci de votre aide.

J'ai déjà passé du temps sur internet sans trouver la solution. Cette
demande n'a pas l'air courante.

JEff

10 réponses

1 2
Avatar
SAM
J-F Portala a écrit :
Bonjour,

j'ai créé un formulaire qui au chargement va se placer sur un champ
particulier.
Au chargement, je lance une fonction javascript qui si le champ est défini,
lui donne le focus.
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;



if ( document.form.nomchamp &&
document.form.nomchamp.type &&
document.form.nomchamp.type != 'hidden')
document.form.nomchamp.focus();
else
...



function focuser() {
for(var i=0; i<arguments.length; i++)
if ( document.form[arguments[i]] &&
document.form[arguments[i]].type &&
document.form[arguments[i]].type != 'hidden')
{
document.form[arguments[i]].focus();
return;
}
}

window.onload = function() {
focuser('chp_1', 'chp_2', 'chp_10', 'autrechp');
}

devrait donner le focus au 1er des champs indiqués qui ne sera pas hidden




Et si on veut donner le focus au premier champ-texte du form :


window.onload = function() {
var f = document.form,
n = f.length;
for(var i=0; i<n; i++)
if ( f[i] && f[i].type && f[i].type == 'text')
{
f[i].focus();
return;
}
};


--
sm
Avatar
Mickaël Wolff
J-F Portala a écrit :
Bonjour,



Bonjour,

j'ai créé un formulaire qui au chargement va se placer sur un champ
particulier.
Au chargement, je lance une fonction javascript qui si lme champ est défini,
lui donne le focus.
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;



Je penses que tu es passé a côté d'une fonctionnalité du HTML qui te
permet de faire ça :
<http://www.w3.org/TR/html4/interact/forms.html#h-17.11>

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
Pierre Goiffon
Mickaël Wolff wrote:
j'ai créé un formulaire qui au chargement va se placer sur un champ
particulier.
Au chargement, je lance une fonction javascript qui si lme champ est défini,
lui donne le focus.
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;



Je penses que tu es passé a côté d'une fonctionnalité du HTML qui te
permet de faire ça :
<http://www.w3.org/TR/html4/interact/forms.html#h-17.11>



????
Pas compris la réponse ??
Avatar
Pierre Goiffon
SAM wrote:
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;



if ( document.form.nomchamp &&
document.form.nomchamp.type &&
document.form.nomchamp.type != 'hidden')
document.form.nomchamp.focus();
else
...



Excellent ! Je ne connaissais pas cette propriété type ! Est-elle bien
supportée sur tous les navigateurs, et prend bien en compte les
modifications via CSS "statique" ou appliquée dynamiquement via JS ?
Avatar
Mickaël Wolff
Pierre Goiffon a écrit :

????
Pas compris la réponse ??



Ce que tu veux faire est déjà une fonctionnalité existante de l'HTML,
tu n'as donc pas besoin de te casser la tête avec du Javascript.

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
J-F Portala
Merci,
c'est exactement ce que je cherchais.
Jeff
Avatar
Olivier Miakinen
Le 07/07/2008 16:55, Pierre Goiffon a écrit :

Au chargement, je lance une fonction javascript qui si lme champ est défini,
lui donne le focus.
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;



Je penses que tu es passé a côté d'une fonctionnalité du HTML qui te
permet de faire ça :
<http://www.w3.org/TR/html4/interact/forms.html#h-17.11>



????
Pas compris la réponse ??



C'est peut-être que Mickaël aurait pu être encore un peu plus précis
dans sa réponse à J.-F. Portala :
http://www.w3.org/TR/html4/interact/forms.html#h-17.11.1

L'attribut tabindex fait exactement ce que voulait faire J.-F.
Avatar
SAM
Pierre Goiffon a écrit :
SAM wrote:
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;



if ( document.form.nomchamp &&
document.form.nomchamp.type &&
document.form.nomchamp.type != 'hidden')
document.form.nomchamp.focus();
else
...



Excellent ! Je ne connaissais pas cette propriété type ! Est-elle bien
supportée sur tous les navigateurs, et prend bien en compte les
modifications via CSS "statique" ou appliquée dynamiquement via JS ?




Moi, j'en sais rien,
j'ai fait et pi valà,
normalement ça marche
(sauf avec IE Mac : 'type' est read-only pour lui,
alors même pour lire y veut pô).

<input type="hidden" name="monchamp">

monchamp existe ?
monchamp a un attribut 'type' ?
l'attribut 'type' de monchamp est différent de 'hidden' ?

de toute la manière c'est du JS d'avant le DOM ça doit donc être compris
par tout brouteur embarquant un minimum de JS

je ne vois pas ce que viennent faire les CSS dans l'histoire


--
sm
Avatar
SAM
Olivier Miakinen a écrit :
Le 07/07/2008 16:55, Pierre Goiffon a écrit :
Au chargement, je lance une fonction javascript qui si lme champ est défini,
lui donne le focus.
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;


Je penses que tu es passé a côté d'une fonctionnalité du HTML qui te
permet de faire ça :
<http://www.w3.org/TR/html4/interact/forms.html#h-17.11>


????
Pas compris la réponse ??



C'est peut-être que Mickaël aurait pu être encore un peu plus précis
dans sa réponse à J.-F. Portala :
http://www.w3.org/TR/html4/interact/forms.html#h-17.11.1

L'attribut tabindex fait exactement ce que voulait faire J.-F.




Parceque tabindex marche tout seul chez vous ?
(après chargement de la page vous êtes jetés directement dans le
tabindexé N°1 ?)

--
sm
Avatar
Olivier Miakinen
Le 07/07/2008 19:43, SAM a écrit :

L'attribut tabindex fait exactement ce que voulait faire J.-F.



Parceque tabindex marche tout seul chez vous ?
(après chargement de la page vous êtes jetés directement dans le
tabindexé N°1 ?)



Tu me fais douter. Pourtant il me semblait bien l'avoir testé dans une
vie antérieure, et que cela avait marché.
1 2