Avatar billede mathiasiversen Nybegynder
21. januar 2003 - 15:13 Der er 17 kommentarer og
1 løsning

javascript function(this);

Hej

Jeg har et lille spørgsmål. Lige nu bruger jeg javascript function(this); og det er også fint nok og det virker som det skal. Men mit spørgsmål er nu om man på lignende måde kan refererer med et lignende kommando til det næste objekt. Det er en del af noget validering, hvor jeg gerne vil have den næste tekstboks i fokus uden at kende den næste tekstboks navn.

/Mathias
Avatar billede Slettet bruger
21. januar 2003 - 15:56 #1
Der er ikke noget, der hedder javascript function(this);
Så du bliver nødt til at vise noget kode! :)
Avatar billede thinge Nybegynder
21. januar 2003 - 16:21 #2
Et foreslag:
list = document.formnavn.elements;
for(var i = 0; i < list.length; i++){
if(list[i] == this){
  list[i+1].focus()
  break;
}
}
Jeg ved ikke om du kan bruge det
Avatar billede mathiasiversen Nybegynder
21. januar 2003 - 16:23 #3
phoenixv :-) f.eks. onblur="java script: function(this);"
thinge << ser lige om jeg kan...
Avatar billede Slettet bruger
21. januar 2003 - 16:35 #4
Du må aldrig skrive "java script:" i en event-handler. Det er underforstået. Og jeg håber heller ikke, at du har kaldt din funktion "function".
Avatar billede mathiasiversen Nybegynder
21. januar 2003 - 16:45 #5
:) du er grinern nok... jo, man må godt skrive javascript i en event-handler - som du selv siger er det underforstået og dermed også lovligt at skrive... og nej, den hedder heller ikke function :)
Avatar billede Slettet bruger
21. januar 2003 - 16:52 #6
Du er sørme også grinern... Nej, det er ikke lovligt, NETOP fordi det er underforstået. Alle standarder taler imod det, hvor meget du end griner.
Avatar billede mathiasiversen Nybegynder
21. januar 2003 - 16:55 #7
Nå, men det er jo herligt at vi begge er så grinern :) Men jeg kan ihvert fald konstatere at jeg aldrig har fået fejl pga. at jeg har skrevet javascript...
Avatar billede Slettet bruger
21. januar 2003 - 17:00 #8
Nej, ikke JavaScript-fejl, for browserne er (uheldigvis) så venlige at tillade alskens sjuskeri. Men hvis du prøvede at holde din kode op mod gængse JS-standarder, så ville du se fejlene. Og hvem ved, en dag vil du måske få fejl for at skrive java script: i en event-handler, når browserne er blevet tilstrækkeligt strikse! Så hold dig til standarderne, det er den eneste fremtidssikre vej.
Avatar billede mathiasiversen Nybegynder
21. januar 2003 - 17:01 #9
ok :) men kan du svare på sprgsmålet???
Avatar billede Slettet bruger
21. januar 2003 - 17:09 #10
Jeg venter på at høre resultatet af dine forsøg med thinges script.
Under alle omstændigheder bliver du nødt til at smide et link.
Avatar billede Slettet bruger
21. januar 2003 - 17:09 #11
Der findes ingen "superfunktion" der kan udrette det for dig; det skal tilpasses ud fra din nuværende kode.
Avatar billede olebole Juniormester
21. januar 2003 - 19:02 #12
<ole>

Tillad mig at være kampleder  :)
Ingen af Jer har forsåvidt ret i 'sagen' om brug af JavaScript-pseudo-protokollen. Det er helt korrekt, at det er nøget vrøvl (og 'ulovligt') at skrive 'java script:' i en event-handler - men det er heller ikke rigtigt, at den er underforstået.
JS-pseudo-protokollen er konstrueret til at bruge steder, hvor man skriver en URL eller URI. Det kan f.eks. være i et link eller i adresse-feltet i browseren.
Det gøres for at oplyse browseren om, at den ikke skal anvende sin default-protokol (HTTP) og altså ikke søge en location gennem denne, men i stedet afvikle et JavaScript.

En event-handler er et 'værktøj', der er indbygget i et HTML-element med det ene formål at afvikle et stykke JavaScript-kode.

Det er altså helt forkert at anføre JS-pseudo-protokollen i et HTML-elements event-handler - og den er heller ikke underforstået, da der aldrig kan være fare for, browseren vil gå ud og søge en location gennem HTTP-protokollen.

Så kom det vist på plads - og I må selv slås videre om hvem af Jer, der er mest grineren  ;o)

En brugbar 'superfunktion', kunne f.eks. se sådan ud (med et lille eksempel):

<script type="text/JavaScript">
var j = false;
function chekForm( f, elm ) {
    list = f.elements;
    for( i=0; i<list.length; i++ ) {
        if( list[i]==elm ) j = i+1;
        if ( i>j && list[i].type=="text" ) {
            list[i].focus();
            break;
        }
    }
}
</script>
<form>
    <input type="checkbox"><br>
    <input type="text" value="Klik her ..." onclick="chekForm(this.form, this);"><br>
    <input type="radio"><br>
    <input type="password"><br>
    <input type="text" value="text-felt"><br>
    <input type="password"><br>
    <input type="text" value="text-felt"><br>
</form>

/mvh
</bole>
Avatar billede olebole Juniormester
21. januar 2003 - 19:06 #13
ups ... slet lige '+1' - linien skal hedde:
  if( list[i]==elm ) j = i;

... sorry  ;o)
Avatar billede Slettet bruger
22. januar 2003 - 21:39 #14
Hey hey, kampleder, nu er du vist lidt unfair! :)
Jeg mente jo, at det er underforstået, at en eventhandler består af JavaScript, IKKE at javascript-pesudo-protokollen er underforstået.
Det har udviklet sig til at blive en rigtig grinern diskussion... Og så er det jo ikke så underligt, at olebole skal blande sig! :)
Avatar billede olebole Juniormester
23. januar 2003 - 02:00 #15
Okay ... så misforstod jeg åbenbart din kommentar (21/01-2003 16:52:44)  :)
/mvh
Avatar billede Slettet bruger
23. januar 2003 - 21:52 #16
Jeg ved godt, jeg formulerede mig lidt kringlet. Men så længe alle er klar over, hvad der er korrekt, så går det vel nok! :)
Avatar billede olebole Juniormester
23. januar 2003 - 22:21 #17
Det er jo lige det  ;o)
Men gad vide, hvornår vi hører noget fra spørgeren ...?!?!!
Avatar billede mathiasiversen Nybegynder
27. januar 2003 - 14:41 #18
hey... jeg har lige lidt travlt, så har ikke haft tid til at teste det af... men skal nok gøre det lige så snart jeg har lidt mere tid :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester