Avatar billede a-torsten Nybegynder
06. april 2001 - 22:10 Der er 17 kommentarer og
1 løsning

Focus på dropdown i anden frame

Jeg har et problem.......

Jeg har 2 Frames...... I den øverste står der noget indhold. (det er en chat) ...

I den nederste er besked feltet osv.

Når man vælger bruger som man vil skrive privat til ser det fx sådan ud : <option value=\"2\">Anders</a>

I selve indholdsframen vil jeg gerne at man så kan trykke på navnet på en bruger, og derefter kommer han / hun i focus i nederste frame....

Problemet ligger i at den skal focusere på Anders, fordi der står anders.. Så value=\"2\" har sådan set ikke noget med dette at gøre, men det må ikke ændres....

Man skal altså kunne trykke på en link, hvorefter den søger i min select dropdown, og finder det ønskede brugernavn...

Hvis brugeren ikke er i listen skal der komme en alert......

Nogen der har noget jeg kan bruge....?

-Anders

PS: Der gives kun point til fungerende eksempler eller andet som kan hjælpe mig med at få det til at virke...
Avatar billede jakoba Nybegynder
06. april 2001 - 22:31 #1
din ramme med dropdovn boksen skal have et navn så den kan addresseres:

  <frame name=\"dropdownramme\" ... >

I den ramme skal både form og select have navne:

<form name=\'dropform\' ... >
...
  <select name=\"dropsel\" ... >

Og så kan vi begynde at programmere en funktion der ligger i indholdsrammen:

<script language=\'javascript\'> <!--

function findChatter( navn ) {
  var sel = parent.dropdownramme.document.dropform.dropsel;
  var selo = sel.options;
  navn = navn.toUpperCase();
  var i = 0;
  while ( selo.length > i ) {
      if ( navn == selo[i].text.toUpperCase() ) break;
      i += 1;
  };
  if ( selo.length > i ) sel.selectedIndex=i;
}; //end findChatter( string )

// --> </script>

og dine links skrives så som:

<a href=\"java script:void(findChatter(\'anders\'))\">Anders</a>
<a href=\"java script:void(findChatter(\'havmand\'))\">havmand</a>
<a href=\"java script:void(findChatter(\'agnete\'))\">Agnete</a>

mvh JakobA
Avatar billede a-torsten Nybegynder
06. april 2001 - 22:39 #2
Tror måske det virker...

hvor kaster jeg en alert ind hvis brugeren ikke er i dropboxen..??
Avatar billede jakoba Nybegynder
06. april 2001 - 22:48 #3
som else til if-sætningen forneden:

  if ( selo.length > i ) {
    sel.selectedIndex=i;
    sel.focus()
  } else
    alert( navn +\" has left the building\" );

og det gav mig samtidig lejlighed til at indsætte det kald til focus() jeg glemte i første runde :)

mvh JakobA
Avatar billede a-torsten Nybegynder
06. april 2001 - 22:55 #4
Den siger nu tegnet } var ventet ... altså en javascript fejl..
Avatar billede jakoba Nybegynder
06. april 2001 - 23:10 #5
Jeg tæller ialt 6 tuborger. 3 start og 3 slut.
kan du finde een jeg har overset?
Avatar billede a-torsten Nybegynder
06. april 2001 - 23:12 #6
Det virker i hvert fald ikke.... den giver fejl når jeg prøver..... Det virker ellser fint... uden alert...
Avatar billede jakoba Nybegynder
06. april 2001 - 23:21 #7
du kunne evt prøve:
    alert( \"\" +navn +\" has left the building\" );

men det burde alligevel ikke give den fejl. ???

vil du cut & paste hele funktionen.
Avatar billede a-torsten Nybegynder
06. april 2001 - 23:29 #8
Jeg har fået det hele til at virke.. pånær det med alert... Det er underligt.....
Avatar billede olebole Juniormester
06. april 2001 - 23:39 #9
<ole>
Mon ikke du har sat den \'else\' et forkert sted? Den skal stå således:

<script language=\'javascript\'>
<!--
function findChatter( navn ) {
  var sel = parent.dropdownramme.document.dropform.dropsel;
  var selo = sel.options;
  navn = navn.toUpperCase();
  var i = 0;
  while ( selo.length > i ) {
      if ( navn == selo[i].text.toUpperCase() ) break;
      i += 1;
  };
  if ( selo.length > i ) {
    sel.selectedIndex=i;
    sel.focus()
  } else {
    alert( navn +\" has left the building\" );
  }
}; //end findChatter( string )

// -->
</script>

/mvh
</bole>
Avatar billede jakoba Nybegynder
06. april 2001 - 23:46 #10
olebole >> exactly.  jeg har blot udeladt tuborgerne omkring alerten da det kun er een sætning.
Avatar billede a-torsten Nybegynder
06. april 2001 - 23:47 #11
hej ole.....

Ja du havede jo ret.. Jeg havde sat det ind på den forkerte måde...

Det virker helt perfekt..... tak for hurtigt, godt og hjælpsomt svar...

-Anders
Avatar billede a-torsten Nybegynder
06. april 2001 - 23:48 #12
Øhh... nu kan jeg slet ikke finde rundt i Jacob og Ole..... ... Tak til jer begge..... Perfekt..

-Anders
Avatar billede a-torsten Nybegynder
06. april 2001 - 23:50 #13
kan man evt flette 2 mere alerter ind...

en hvis bruger er = Dotten og en Hvis bruger er = en selv ....... ??

-Anders
Avatar billede jakoba Nybegynder
06. april 2001 - 23:58 #14
Og de skal altid komme for \"dotten\" og \"a-torsten\"?

lige efter linien
  var i = 0;
fortsætter du med:

  if (navn==\"DOTTEN\") alert( \"Du vover at tilkalde lampens ånd?\" );
  if (navm==\"A-TORSTEN\") alert( \"De ønsker at tale med a-torsten\" );
Avatar billede jakoba Nybegynder
07. april 2001 - 00:01 #15
uden m i navn altså (sidste linie)
bemærk at navnene er skrevet med store bogstaver.

mvh JakobA
Avatar billede a-torsten Nybegynder
07. april 2001 - 00:02 #16
så kommer den alm jo stadig bagefter..... scriptet skal \"stoppe\" hvis en af de 2 er tilfældet....
Avatar billede jakoba Nybegynder
07. april 2001 - 00:13 #17
indsættes samme sted:
  if (navn==\"DOTTEN\") {
    alert( \"Du vover at tilkalde lampens ånd?\" );
    return;
  };
  if (navm==\"A-TORSTEN\") {
    alert( \"De ønsker at tale med a-torsten\" );
    return;
  };

der bliver så heller ikke fokuseret på selecten.
Avatar billede a-torsten Nybegynder
07. april 2001 - 00:16 #18
Nu viker det helt perfekt.. takker Jacob..*ss*
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