Avatar billede sw_red_6 Nybegynder
30. august 2006 - 11:29 Der er 14 kommentarer og
1 løsning

Fokus på select-boks

Jeg har det her kode:

<tr id="f6" style="display:block;"><td><?php echo generer_select('06', $FEJL_NO_06); ?></td><td>&nbsp;</td><td><table cellpadding="0" cellspacing="0" border="0"><tr><td><INPUT type="Text" name="FEJL_6" size="30" value="<?php echo $FEJL_6; ?>" maxlength="60" onchange="fold_ud(7);"></td></tr></table></td></tr>
<tr id="f7" style="display:none;"><td><?php echo generer_select('07', $FEJL_NO_07); ?></td><td>&nbsp;</td><td><table cellpadding="0" cellspacing="0" border="0"><tr><td><INPUT type="Text" name="FEJL_7" size="30" value="<?php echo $FEJL_7; ?>" maxlength="60" onchange="fold_ud(8);"></td></tr></table></td></tr>


Er det muligt at få fokus på den selectboks der kommer frem som følge af den onchange?
Avatar billede olebole Juniormester
30. august 2006 - 11:41 #1
<ole>

Ja, hvis du viser os funktionen, kan du få at se, hvordan  :)

/mvh
</bole>
Avatar billede sw_red_6 Nybegynder
30. august 2006 - 11:42 #2
Arh er det nu også nødvendigt med alle oplysningerne... ;)

function fold_ud(tmp) {
  f=document.FORM_SYNSDATA;
  for(i=6;tn=f["FEJL_"+i];i++)if (tn.value != "") {
    document.getElementById("f"+tmp).style.display='block';
    document.getElementById("vis").style.display='none';
    document.getElementById("luk").style.display='none';
  }
}
Avatar billede olebole Juniormester
30. august 2006 - 12:50 #3
Mon ikke, der skal stå:

function fold_ud(tmp) {
  var o, f=document.FORM_SYNSDATA;
  for(i=6;tn=f["FEJL_"+i];i++)if (tn.value != "") {
    o = document.getElementById("f"+tmp);
    o.style.display='block';
    o.focus();
    document.getElementById("vis").style.display='none';
    document.getElementById("luk").style.display='none';
  }
}
Avatar billede olebole Juniormester
30. august 2006 - 12:52 #4
Det er ikke til at vide med sikkerhed, når du skriver PHP-koden. Det, der er interessant, er HTML'en, PHP spytter ud  :)
Avatar billede sw_red_6 Nybegynder
30. august 2006 - 12:53 #5
Hvis bare det var så simpelt... Det virker desværre ikke.
Avatar billede sw_red_6 Nybegynder
30. august 2006 - 12:54 #6
Forresten vil det så ikke sætte fokus på den <tr> i stedet for på den select der bliver genereret?
Avatar billede sw_red_6 Nybegynder
30. august 2006 - 12:57 #7
Kan det lade sig gøre hvis det bliver gjort med getElementByName() i stedet for? der er nemlig ikke id på select'en, men der er unikke navne på dem selvom de bliver genereret på den måde.
Avatar billede olebole Juniormester
30. august 2006 - 12:58 #8
Det ville være meget lettere at forholde sig til dine spørgsmål med noget relevant kode  :)
Avatar billede sw_red_6 Nybegynder
30. august 2006 - 13:00 #9
Helt sikkert. Hvad er det du eftersøger? jeg kan godt kopiere select og input ind fra kilden hvis det er.
Avatar billede sw_red_6 Nybegynder
30. august 2006 - 13:06 #10
Kode taget fra "vis kilde":
<tr id="f6" style="display:block;">
  <td>
    <select name="FEJL_NO_06" size="1">
        <option value="0"  SELECTED>Vælg fejltype</option>
      <option value="02">02 - Identifikation og påskrifter</option>
      <option value="03">03 - Vægt og dimensioner</option>
      <option value="04">04 - Styreapparat</option>
      <option value="05">05 - Bremser</option>
      <option value="06">06 - El-anlæg</option>
      <option value="07">07 - Motor, støj og forurening</option>
      <option value="08">08 - Bærende elementer</option>
      <option value="09">09 - Karrosseri, opbygning mv.</option>
      <option value="10">10 - Indre indretning, udsyn mv.</option>
      <option value="11">  - Andet</option>
    </select>
  </td>
  <td>&nbsp;</td>
  <td>
    <table cellpadding="0" cellspacing="0" border="0">
      <tr>
        <td>
          <INPUT type="Text" name="FEJL_6" size="30" value="" maxlength="60" onchange="fold_ud(7);">
        </td>
      </tr>
    </table>
  </td>
</tr>
<tr id="f7" style="display:none;">
  <td>
    <select name="FEJL_NO_07" size="1">
      <option value="0"  SELECTED>Vælg fejltype</option>
      <option value="02">02 - Identifikation og påskrifter</option>
      <option value="03">03 - Vægt og dimensioner</option>
        <option value="04">04 - Styreapparat</option>
        <option value="05">05 - Bremser</option>
        <option value="06">06 - El-anlæg</option>
        <option value="07">07 - Motor, støj og forurening</option>
        <option value="08">08 - Bærende elementer</option>
        <option value="09">09 - Karrosseri, opbygning mv.</option>
        <option value="10">10 - Indre indretning, udsyn mv.</option>
        <option value="11">  - Andet</option>
    </select>
  </td>
  <td>&nbsp;</td>
  <td>
    <table cellpadding="0" cellspacing="0" border="0">
      <tr>
        <td>
          <INPUT type="Text" name="FEJL_7" size="30" value="" maxlength="60" onchange="fold_ud(8);">
        </td>
      </tr>
    </table>
  </td>
</tr>

Og så lige funktionen igen:
function fold_ud(tmp) {
  var o, f=document.FORM_SYNSDATA;
  for(i=6;tn=f["FEJL_"+i];i++)if (tn.value != "") {
    o = document.getElementById("f"+tmp);
    o.style.display='block';
    o.focus();
    document.getElementById("vis").style.display='none';
    document.getElementById("luk").style.display='none';
  }
}
Avatar billede olebole Juniormester
30. august 2006 - 13:26 #11
Så er det vel noget à la:

function fold_ud(tmp) {
  var o, f=document.FORM_SYNSDATA;
  for(i=6;tn=f["FEJL_"+i];i++)if (tn.value != "") {
    o = document.getElementById("f"+tmp);
    o.style.display='block';
    j = i<10 ? "0"+i : i;
    f["FEJL_NO"+j].focus();
    document.getElementById("vis").style.display='none';
    document.getElementById("luk").style.display='none';
  }
}
Avatar billede sw_red_6 Nybegynder
30. august 2006 - 13:29 #12
Så er den der næsten.. den sætter focus på select'en før, men der er forholdsvis simpelt at ændre på... håber jeg.
Avatar billede sw_red_6 Nybegynder
30. august 2006 - 13:42 #13
Det lykkedes, hvis du lige smider et svar osv. ;D
Avatar billede olebole Juniormester
30. august 2006 - 14:11 #14
Det bør kunne rettes med:

function fold_ud(tmp) {
  var o, f=document.FORM_SYNSDATA;
  for(i=6;tn=f["FEJL_"+i];i++)if (tn.value != "") {
    o = document.getElementById("f"+tmp);
    o.style.display='block';
    j = i+1;
    j = j<10 ? "0"+j : j;
    f["FEJL_NO"+j].focus();
    document.getElementById("vis").style.display='none';
    document.getElementById("luk").style.display='none';
  }
}
Avatar billede olebole Juniormester
30. august 2006 - 14:39 #15
Tak for points  ;o)
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