28. september 2006 - 16:14Der er
7 kommentarer og 1 løsning
Generelt JS forståelses spørgsmål
Hey..
Problemet drejer sig om hvad der kan køres onload på elementer, og hvordan det egentligt virker.
ex har jeg en nyhedsbrevs tilmeldingsform som andre kunder kan implementere på deres site, og altså kun købe servicen "Nyhedsbrev" af os.. denne har noget JS validering..
Mit mål er at der "ingen" inline JS er i mit markup. og at koden er så "kort" som mulig
Jeg inkludere derfor først et eksternt JS dokument, dette validering kræver at man skriver noget initialiserende kode, efter input felterne er loaded,
<Kode> //This script has to be located below form, and as inline-code. //Creating fields var o_fields = { 'Name':{'l':'Name','r':true,'f':'alpha','t':'Newsletter_Name'}, 'Email':{'l':'Email','r':true,'f':'email','t':'Newsletter_Email'} } //Creating validator var tfv = new validator('newsletter_subscription', o_fields, {'to_disable' : ['Submit']}); </Kode>
Dette kode ville jeg gerne være fri for, og tænkte jeg smider det bare i en funktion og kalder den på <form onload=""> og ligger den i samme JS dokument som selve valideringskontrollerns funktioner ligger i. Men det virkede ikke, og pga deadline oprettede jeg endnu en JS fil, og linkede til den under formen..
Men kan det ikke laves som en funktion og køres onload på formen ?
her er lidt Pseudo kode..
Sådan gøres nu <link src=js> <form> <input> <input> <submit> </form> <script type=js> //initialiser </script>
Sådan ønsker jeg det : <link src=js> <form onload=initialiser> <input> <input> <submit> </form>
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Jeg er ikke sikker på at jeg er med på hvad du gerne vil. Du vil gerne afvikle javascript når en form er loadet???
<body onload="Noget()"> Det ville da være den nemmeste og mindste måde at gøre det på. Så kan du placere dit javascritp i samme fil, eller i en .js fil.
[ Mit mål er at der "ingen" inline JS er i mit markup. og at koden er så "kort" som mulig ] <form onload=""> <- Det er inline js ligeså snart man kaster en event handler med i et dokument.
[ Sådan ønsker jeg det : ] Er det ikke at oprette en js fil med indholdet:
//Creating fields var o_fields = { 'Name':{'l':'Name','r':true,'f':'alpha','t':'Newsletter_Name'}, 'Email':{'l':'Email','r':true,'f':'email','t':'Newsletter_Email'} }
og så <form onload="var tfv = new validator('newsletter_subscription', o_fields, {'to_disable' : ['Submit']});">
... ellers hvis du vil have det hele over i et script (og det er ok med window load) så er det måske en javascript fil med dette indhold:
//This script has to be located below form, and as inline-code. //Creating fields var o_fields = { 'Name':{'l':'Name','r':true,'f':'alpha','t':'Newsletter_Name'}, 'Email':{'l':'Email','r':true,'f':'email','t':'Newsletter_Email'} }
[ Mit mål er at der "ingen" inline JS er i mit markup. og at koden er så "kort" som mulig ] <form onload=""> <- Det er inline js ligeså snart man kaster en event handler med i et dokument.
[ Sådan ønsker jeg det : ] Er det ikke at oprette en js fil med indholdet:
... ellers hvis du vil have det hele over i et script (og det er ok med window load) så er det måske en javascript fil med dette indhold:
-------------------------------------------------------------------------------- //This script has to be located below form, and as inline-code. //Creating fields var o_fields = { 'Name':{'l':'Name','r':true,'f':'alpha','t':'Newsletter_Name'}, 'Email':{'l':'Email','r':true,'f':'email','t':'Newsletter_Email'} }
Ved ikke om tfv skal være global - hvis det er tilfældet skulle det sidste eksempel i ovenstående have været:
//This script has to be located below form, and as inline-code. //Creating fields var o_fields = { 'Name':{'l':'Name','r':true,'f':'alpha','t':'Newsletter_Name'}, 'Email':{'l':'Email','r':true,'f':'email','t':'Newsletter_Email'} }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.