OVH Cloud OVH Cloud

objet undefined

26 réponses
Avatar
J-F Portala
Bonjour,

Je voudrais que lors du chargement de ma page, un champ aie le focus.
avec
<body onload=foc();>

et
function foc()
{
document.form.nomchamp.focus() ;
}

Cela fonctionne.

Le probleme est que cette page affiche d'autres formulaires dans lesquels ce
champ n'existe pas.

J'ai essayé de transformer la fonction en

function foc()
{
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;
}

J'ai un message d'erreur

document.form.nomchamp a la valeur null ou n'est pas un objet

Est ce qu'il existe un test permettant de verifier l'existence d'un objet

Merci de votre aide

10 réponses

1 2 3
Avatar
Francis Spiesser
J-F Portala a pensé très fort :


J'ai essayé de transformer la fonction en

function foc()
{
if ( document.form.nomchamp != undefined )
document.form.nomchamp.focus() ;
}

J'ai un message d'erreur

document.form.nomchamp a la valeur null ou n'est pas un objet

Est ce qu'il existe un test permettant de verifier l'existence d'un objet

Merci de votre aide


function foc()
{
if ( document.form.nomchamp)
document.form.nomchamp.focus() ;
}

Par défaut, un objet rentre true/false selon qu'il existe ou pas

--
______
Francis (enlever .NIPUBNISOUMIS)
"Quand un informaticien est énervé, il a les BOOL"

Avatar
Francis Spiesser
Le 04/04/2006, Francis Spiesser a supposé :
J-F Portala a pensé très fort :

function foc()
{
if ( document.form.nomchamp)
document.form.nomchamp.focus() ;
}

Par défaut, un objet rentre true/false selon qu'il existe ou pas


rend, pas rentre ! ;-)

--
______
Francis (enlever .NIPUBNISOUMIS)
Il y a 10 sortes de personnes : celles qui comprennent le binaire et
les autres

Avatar
J-F Portala
"Francis Spiesser" a
écrit dans le message de news:

Le 04/04/2006, Francis Spiesser a supposé :
J-F Portala a pensé très fort :

function foc()
{
if ( document.form.nomchamp)
document.form.nomchamp.focus() ;
}

Par défaut, un objet rentre true/false selon qu'il existe ou pas


rend, pas rentre ! ;-)


Merci de ton aide,
je viens de m'apercevoir que j'avais déjà un autre <body on
load="chargementmenu();">
qui m'affiche un menu déroulant horizontal.

Comment est ce que je pourrais gérer cela, sachant que le menu s'affiche
dans pas mal de pages avec la fonction GestionMenu()
dans laquelle est effectué le <body ...onload >

Je n'ai pas vu d'autre événement exploitables.

Est ce qu'il faut que je fasse une vérue pour ce cas.

Jeff


Avatar
CrazyCat
J-F Portala wrote:
Merci de ton aide,
je viens de m'apercevoir que j'avais déjà un autre <body on
load="chargementmenu();">
qui m'affiche un menu déroulant horizontal.


Pourquoi ne pas faire:
<script language="javascript">
onLoad = function() {
if (document.form.monchamp) {
document.form.monchamp.focus();
}
}
</script>

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net

Avatar
J-F Portala
"CrazyCat" a écrit dans le message de news:
e0tfoh$4on$
J-F Portala wrote:
Merci de ton aide,
je viens de m'apercevoir que j'avais déjà un autre <body on
load="chargementmenu();">
qui m'affiche un menu déroulant horizontal.


Pourquoi ne pas faire:
<script language="javascript">
onLoad = function() {
if (document.form.monchamp) {
document.form.monchamp.focus();
}
}
</script>



Je suis désolé de faire le boulet, mais je ne comprends pas le
fonctionnement de ce que tu proposes.

Est ce que je dois placer
onLoad = function()....
directement entre <head> et </head>

Je ne vois pas comment se fait le lien aec le chargement de la page
J'ai déjà un <body onload="chargementmenu();"
comment j'ajoute le tien

Jeff


Avatar
CrazyCat
J-F Portala wrote:
Je suis désolé de faire le boulet, mais je ne comprends pas le
fonctionnement de ce que tu proposes.

Est ce que je dois placer
onLoad = function()....
directement entre <head> et </head>


Tu le places un peu ou tu veux :)

Je ne vois pas comment se fait le lien aec le chargement de la page
J'ai déjà un <body onload="chargementmenu();"
comment j'ajoute le tien


En fait, il existe en Javascript la méthode onLoad qui permet de lancer
une action sitôt que la page est chargée.
Si tu as plusieurs actions à lancer au chargement de ta page, il te
suffit de mettre dans ton fichier de script (qui peut être directement
dans ta page) ceci:
onLoad = function() {
chargementmenu();
... autre action à réaliser; ...
if (document.form.monchamp) {
document.form.monchamp.focus();
}
... encore quelque chose à faire;
}

Et ça te dispense d'allourdir ta balise <body> avec l'appel onload="".

J'espère avoir été clair, sinon n'hésite pas à demander :)
--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net

Avatar
ASM
onLoad = function() {


je ne suis pas certain que mon navigateur accepte : onLoad

Préférer : onload

chargementmenu();
... autre action à réaliser; ...
if (document.form.monchamp) {
document.form.monchamp.focus();
}
... encore quelque chose à faire;
}

Et ça te dispense d'allourdir ta balise <body> avec l'appel onload="".

J'espère avoir été clair, sinon n'hésite pas à demander :)



--
Stephane Moriaux et son [moins] vieux Mac

Avatar
CrazyCat
ASM wrote:
je ne suis pas certain que mon navigateur accepte : onLoad
Préférer : onload


http://www.validome.org/doc/HTML_fr/javascript/langage/gestevenements.htm#onload

Désolé de te contredire Stéphane, mais pour une fois j'ai juste (du
point de vue de la norme)

--
Astuces informatiques: http://www.crazycat.info
Tchattez en liberté: http://www.crazy-irc.net

Avatar
J-F Portala

J'espère avoir été clair, sinon n'hésite pas à demander :)
--
Bien que ce soit tres clair, je dois rater quelque chose car cela ne

fonctionne pas chez moi.

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
<SCRIPT LANGUAGE="javascript">
<!--
onLoad = function()
{
alert('toto') ;
}
//-->
</SCRIPT>
</head>
<body>

</body>
</html>
</head>
<body>
Je devrais avoir une boite d'alerte lorsque au chargement et rien ne se
passe.
Qu'est ce que j'ai raté?
Jeff

Avatar
ASM
ASM wrote:

je ne suis pas certain que mon navigateur accepte : onLoad
Préférer : onload


http://www.validome.org/doc/HTML_fr/javascript/langage/gestevenements.htm#onload

Désolé de te contredire Stéphane, mais pour une fois j'ai juste (du
point de vue de la norme)



D'une part selfHtml n'est pas sans qques erreurs (rares) et ce n'est
certainement pas un site norminatif,
d'autre part, là tu es en train de tout me mélanger ...
dans l'exemple donné le OnLoad est employé en HTML
et ...
en HTML c'est non case sensitive (onload = onLoad = OnLoad)
contrairement au JavaScript qui est case-sensitif

de toutes façons j'ai dit : je ne suis pas certain
traduction : à verifier dans tous ses navigateurs.

Maintenant si ton onLoad est dans la balise body je ne puis qu'être
d'accord (as-tu précisé que c'était dans la balise body ? non : "tu le
places un peu où tu veux")

Le plus simple est tt de même de s'en tenir à l'écriture JS, ainsi pas
de surprise.

--
Stephane Moriaux et son [moins] vieux Mac


1 2 3