Avatar billede mjanum Nybegynder
21. september 2000 - 14:55 Der er 12 kommentarer og
1 løsning

Bruge Enter til næste input felt - problemer

Jeg har studeret spørgsmål og svar
http://www.eksperten.dk/spm/15050

men har problemer med at få det til at virke.

Den melder om fejl i linien
ns4 = (document.layers)? true:false;
med meddelelsen
Invalid character

Så lige et tillæg, jeg har ikke mulighed for at køre <body onload=\"init();\">, da denne tag ligger i en header der includes på alle websider på sitet. Hvordan får jeg så eksekveret init funktionen???

Har bokset med det i laaang tid, så håber på lidt hjælp, kan evt. poste hele koden.
/Morten
Avatar billede laserzap Nybegynder
21. september 2000 - 15:15 #1
Ja tak. Du må godt poste hele koden. Så er det lidt lettere for os ;)
Avatar billede mjanum Nybegynder
21. september 2000 - 15:17 #2
Ved godt at init ikke bliver kørt, men som sagt, så kaldes body tag\'et i min header.asp/footer.asp

----------------------------
<!-- #include file=\"include/header.asp\" -->
<script language=JavaScript>
  ns4 = (document.layers)? true:false;
  ie4 = (document.all)? true:false; 
  ie4 = true;
  function kp(e) {
      if (ns4) {if (e.which==13) {document.form1.password.focus();}}
      if (ie4) {e=window.event; if (e.keycode==13)
      {e.cancelBubble=true;e.keyCode=0;document.form1.password.focus();}}
      }
  function kp2(e) { 
      if (ns4) {if (e.which==13) {document.form1.submit();}}
      if (ie4) {e=window.event; if (e.keyCode==13) {document.form1.submit();}}
      } 
  function init()
    { document.form1.login.onkeypress=kp;   
      document.form1.password.onkeypress=kp2;
      document.form1.login.focus(); 
    }
//-->     
</SCRIPT>

<h1>Login</h1>
Indtast dit login og password for at få adgang til tidsregistreringen.
<form action=\"_shopper_login.asp\" method=\"post\" id=\"form1\" name=\"form1\">
    <input TYPE=\"HIDDEN\" NAME=\"ACTION\" VALUE=\"LOGIN\">
    <table>
        <tr><td>Login:</td><td><input TYPE=\"TEXT\" NAME=\"login\" SIZE=\"30\"></td></tr>
        <tr><td>Password:</td><td><input type=\"password\" name=\"password\" size=\"10\"></td></tr>
        <tr>
            <td>
                <br>
                <% if request(\"returl\") <> \"\" then %>
                <input type=\"hidden\" value=\"<% = Request(\"returl\") %>\" name=\"returl\">
                <% end if %>
                <input type=\"reset\" value=\"Reset\" id=\"reset1\" name=\"reset1\">
                <input type=\"submit\" value=\"Godkend\" id=\"submit1\" name=\"submit1\">
            </td>
        </tr>
    </table>
</form>
<!-- #include file=\"include/footer.asp\" -->
Avatar billede mjanum Nybegynder
21. september 2000 - 15:20 #3
har sat ie4=true i lidt test....
Avatar billede erikjacobsen Ekspert
21. september 2000 - 15:48 #4
Du skal huske at JavaScript et følsomt overfor store og små bogstaver. Du
skriver et sted
  if (e.keycode==13)
men det skal være
  if (e.keyCode==13)
og så skal du jo have kaldt den init()-funktion.
Definer den i <script>-tags i headeren (mellem <head> og </head>) og skriv

  <body onload=\"init();\">

Så virker den. Hey, det er jo mit script, *smile smile*

Avatar billede mjanum Nybegynder
21. september 2000 - 15:54 #5
Ja men min header.asp køres også på mange andre sider der ikke indeholder scriptet går det???. Jeg har prøvet at rette til C, men den fejler i linien som beskrevet ovenfor (når jeg debugger).

Godt at have script \"ejeren\" på banen :-)
Avatar billede erikjacobsen Ekspert
21. september 2000 - 15:58 #6
Det virker ikke med mindre du kalder init().
Der er ingen fejl hos mig, så hvad bliver der genereret i din header?? Kan du give
en link, så vi kan se det.

I stedet for at kalde init() i en onload, kan du skrive

  <script>
  init();
  </script>

under formen - eller til allersidst - skulle give samme resultat.
Avatar billede mjanum Nybegynder
21. september 2000 - 16:21 #7
Når jeg indsætter init(); på siden (med script omkring), så kommer der en ekstra fejl besked:

line 69 object expected

Jeg har taget de 3 linier fra forrige kommentar.
Jeg får stadig: Line 32 Invalid character
Herunder er min header.asp, der er ikke rigtig noget sprængstof i den :-)
------------------------------
<HTML>
<HEAD>
<LINK rel=\"stylesheet\" type=\"text/css\" href=\"<% = Application(\"VRoot\") %>/shop.css\">
<TITLE>Tidsregistrering</TITLE>
</HEAD> 

<BODY>
<table width=\"100%\" cellpadding=5>
    <tr>
        <td class=\"banner\">
            <table width=\"100%\">
                <tr>
                    <td><a href=\"<% = Application(\"VRoot\") %>/default.asp\" class=\"menu\">Start</a></td>                   
                    <% IF session(\"usercategory\")=\"administrator\" then %>
                      <td><a href=\"<% = Application(\"VRoot\") %>/submitted.asp\" class=\"menu\">Overført oversigt</a>
                     
                    <% end if %> 
                    <td><a href=\"<% = Application(\"VRoot\") %>/shopper_logout.asp\" class=\"menu\">Log af</a>
                </tr>
            </table>
        </td>
    </tr>
    <tr>
        <td>
            <% IF session(\"name\")<> \"\" then %>
              Bruger: <B><% = session(\"name\") %></B>&nbsp;&nbsp;&nbsp;&nbsp;Brugertype: <B><% = session(\"usercategory\") %></B>&nbsp;&nbsp;&nbsp;&nbsp;<% = day(now) & \"-\" & month(now) & \"-\" & year(now) %>,<% = \"Kl.\" & FormatDateTime(now,3) %>
            <% end if %>
        </td>   
    </tr>
    <tr>
      <td>
------------------
de andre asp sider ligger altså inde i tabellen og footer.asp afslutter tabellen.
Avatar billede erikjacobsen Ekspert
21. september 2000 - 17:56 #8
Det kan jeg så ikke rigtig bruge til noget - eller: jeg gider ikke klippe klistre. Er fejlmeddelelsen
fra ASP eller HTML? Kan du ikke smide hele den genererede HTML her, så jeg selv kan prøve mig
frem?
Avatar billede jumper Nybegynder
21. september 2000 - 19:16 #9
Et lille delsvar, da jeg har lidt travlt:

<body onload=\"init()\">

kan udmærket erstattes med

window.onload = init;

/Thor
Avatar billede mjanum Nybegynder
22. september 2000 - 09:27 #10
Her er den genererede html kode, jeg får følgende fejl:
1) line 31, init undefined, hvis jeg siger window.onload = init();, siger den object required
2) Line 54, invalid character (kan ikke slippe af med denne). Jeg syntes den driver lidt gæk med mig.....har anvendt jumpers ide, men ikke bedre....
----------------------------------
<HTML>
<HEAD>
<LINK rel=\"stylesheet\" type=\"text/css\" href=\"/nfb/shoplocal/shop.css\">
<TITLE>Tidsregistrering</TITLE>
</HEAD> 

<BODY>
<table width=\"100%\" cellpadding=5>
    <tr>
        <td class=\"banner\">
            <table width=\"100%\">
                <tr>
                    <td><a href=\"/nfb/shoplocal/default.asp\" class=\"menu\">Start</a></td>                   
                     
                    <td><a href=\"/nfb/shoplocal/shopper_logout.asp\" class=\"menu\">Log af</a>
                </tr>
            </table>
        </td>
    </tr>
    <tr>
        <td>
           
        </td>   
    </tr>
    <tr>
      <td>     
   



<SCRIPT language=JavaScript>
  window.onload = init;
</SCRIPT>

<h1>Login</h1>
Indtast dit login og password for at få adgang til tidsregistreringen.
<form action=\"_shopper_login.asp\" method=\"post\" id=\"form1\" name=\"form1\">
    <input TYPE=\"HIDDEN\" NAME=\"ACTION\" VALUE=\"LOGIN\">
    <table>
        <tr><td>Login:</td><td><input TYPE=\"TEXT\" NAME=\"login\" SIZE=\"30\"></td></tr>
        <tr><td>Password:</td><td><input type=\"password\" name=\"password\" size=\"10\"></td></tr>
        <tr>
            <td>
                <br>
               
                <input type=\"reset\" value=\"Reset\" id=\"reset1\" name=\"reset1\">
                <input type=\"submit\" value=\"Godkend\" id=\"submit1\" name=\"submit1\">
            </td>
        </tr>
    </table>
</form>

<script language=JavaScript>
  ns4 = (document.layers)? true:false;
  ie4 = (document.all)? true:false; 
  function kp(e) {
      if (ns4) {if (e.which==13) {document.form1.password.focus();}}
      if (ie4) {e=window.event; if (e.keyCode==13)
      {e.cancelBubble=true;e.keyCode=0;document.form1.password.focus();}}
      }
  function kp2(e) { 
      if (ns4) {if (e.which==13) {document.form1.submit();}}
      if (ie4) {e=window.event; if (e.keyCode==13) {document.form1.submit();}}
      } 
  function init()
    { document.form1.login.onkeypress=kp;   
      document.form1.password.onkeypress=kp2;
      document.form1.login.focus(); 
    }
//-->     
</SCRIPT>


            <br><br>
        </td>
    </tr>
</table>
<table cellpadding=\"10\" width=\"100%\">
    <tr>
        <td width=\"100%\" class=\"footer\"><img SRC=\"/nfb/shoplocal/images/logo.gif\"></td>
    </tr>
</table>
</body>
</html>
Avatar billede erikjacobsen Ekspert
22. september 2000 - 13:34 #11
At init-funktionen ikke genkendes er klart nok. Du bruger den før den er erklæret.
Skriv:
....
  function init()
    { document.form1.login.onkeypress=kp;   
      document.form1.password.onkeypress=kp2;
      document.form1.login.focus(); 
    }
window.onload = init;
//-->     
</SCRIPT>

Den anden forstår jeg ikke. Jeg kan ikke reproducere den i IE4 / NS4.5.
Prøv at slette et par linier, tast (ikke ctrlC-CtrlV) dem ind igen. Ellers bør du
skrive  <script language=\"JavaScript\"> altså med stoffer - men det burde ikke
betyde noget.

(tak, jumper - det glemmer jeg altid!)
Avatar billede mjanum Nybegynder
22. september 2000 - 15:49 #12
yabba dabba dooo....det virker.
Fejlen skyldtes at der efter kopi fra eksperten var kommet mellemrums tegn efter nogle af linierne i scriptet. af en eller anden årsag fejler IE, altså ved dette.

Erik du er kongen......læg et svar og pointene er dine - ærligt fortjent :-)

Morten
Avatar billede erikjacobsen Ekspert
22. september 2000 - 19:20 #13
Ok, mate! ;-)
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