Avatar billede ladyhawke Novice
11. juni 2003 - 09:18 Der er 47 kommentarer og
2 løsninger

Default knap i form

Hvordan får jeg min form knap til at udføre "submit" når man trykker på enter?

<form action="db.php" method="POST">
<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username" length=10 maxlength="30">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Log in">
</td>
</tr>
</table>
</form>
Avatar billede hulla Novice
11. juni 2003 - 09:21 #1
Du skal bare sætte focus på din knap,.
Avatar billede hulla Novice
11. juni 2003 - 09:24 #2
onload="document.form1.submit.focus();"

så skal din form bare hedde form1
Avatar billede roenving Novice
11. juni 2003 - 09:24 #3
Med eet felt på en form submitter du automatisk med <enter> ...
Avatar billede ladyhawke Novice
11. juni 2003 - 09:33 #4
roenving>> OK, det virker så ikke hos mig...
Avatar billede ladyhawke Novice
11. juni 2003 - 09:35 #5
Hvordan navngiver jeg formen?
Avatar billede hulla Novice
11. juni 2003 - 09:42 #6
<form action="db.php" method="POST" name="form1" ID="form1">
Avatar billede roenving Novice
11. juni 2003 - 09:45 #7
Men hvis du sætter fokus på submit-knappen onload, fjerner du det jo, når der skrives i input-feltet ?-)
Avatar billede ladyhawke Novice
11. juni 2003 - 09:50 #8
ja, det gør jeg... Er det ikke muligt at sætte en default action på en forms knap? Uden at skulle sætte focus...

Lige nu slettes indholdet af indtastningsfeltet når der trykkes enter, men der bliver ikke sendt noget...
Avatar billede roenving Novice
11. juni 2003 - 09:59 #9
Man kunne jo være lidt fræk med onkeydown i input-feltet -- skal lige finde det i biblioteket - øjeblik ,-)
Avatar billede hulla Novice
11. juni 2003 - 09:59 #10
sendt noget?? bliver du redirected ?
Avatar billede jakobclausen Nybegynder
11. juni 2003 - 10:02 #11
ladyhawke >> Har du testen siden hvor den har ligget på nettet? Jeg har haft lign. problemer hvor jeg heller ikke kunne bruge enter lokalt, men da jeg lagde den op kunne jeg godt.
Avatar billede roenving Novice
11. juni 2003 - 10:02 #12
<input ... onkeydown="ch=(event.which)?event.which:event.keyCode;if (ch=13)this.form.submit();"

-- ganske utestet ...
Avatar billede roenving Novice
11. juni 2003 - 10:02 #13
Hov, der manglede også en >
Avatar billede ladyhawke Novice
11. juni 2003 - 10:04 #14
Det er meningen at det der bliver indtastet i input feltet kontrolleres op mod en database, det virker fint hvis jeg klikker på submit knappen med musen (man afvises hvis navnet er forkert).

siden ligger loaklt og det skulle den helst blive ved med et stykke tid...

jeg prøver lige onkeydown...
Avatar billede ladyhawke Novice
11. juni 2003 - 10:07 #15
Det virker ikke umiddelbart, ser således ud nu:

<form action="db.php" method="POST">
<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username" length=10 maxlength="30" onkeydown="ch=(event.which)?event.which:event.keyCode;if (ch=13)this.form.submit();">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Log in">
</td>
</tr>
</table>
</form>
Avatar billede roenving Novice
11. juni 2003 - 10:09 #16
Undskyld, jeg missede et =

(ch==13)
Avatar billede ladyhawke Novice
11. juni 2003 - 10:11 #17
Virker stadig ikke...
Avatar billede jakobclausen Nybegynder
11. juni 2003 - 10:14 #18
ladyhawke >> Jeg vil vædde med at hvis du lægger den på net kan du submitte med enter. Det er vel meningen at den engang skal kører fra nettet, og så er problemet jo løst!
Avatar billede hulla Novice
11. juni 2003 - 10:18 #19
Jeg har en løsning her i VBscript

Function microsoftKeyPress()
    If window.event.keyCode = 13 Then
        form1.submit()
    End If
End Function

<form action="db.php" id="form1" method="POST" onkeyPress="microsoftKeyPress()">
Avatar billede roenving Novice
11. juni 2003 - 10:21 #20
-- en lille test, prøv lige:

<input type="text" name="username" length=10 maxlength="30" onkeydown="ch=(event.which)?event.which:event.keyCode;alert(ch);if (ch==13)this.form.submit();">
Avatar billede ladyhawke Novice
11. juni 2003 - 11:36 #21
så får jeg en dialog boks hver gang jeg trykker på en tast...
Avatar billede roenving Novice
11. juni 2003 - 11:52 #22
-- kun en test, hvilken kode får du, når du trykker <enter>

-- jeg får nemlig 13 hvilket er ascii-koden for enter ..

-- og det betyder, at der er andet som forhindrer det i at virke !-)
Avatar billede pelkjaer Nybegynder
11. juni 2003 - 11:56 #23
function enterSub() {
  if (window.event && window.event.keyCode == 13) { 
    document.formnavn.submit();
  } else {
    return true;
  }
}

<form name="formnavn" method="post">
<input type="text" value="" onkeypress="enterSub();">
</form>
Avatar billede ladyhawke Novice
11. juni 2003 - 14:57 #24
Jeg får også 13....
Avatar billede roenving Novice
11. juni 2003 - 14:59 #25
-- du prøver også uden for din webeditor ?

-- Min (Stones Webwriter) virker nemlig ikke ordentligt, når jeg prøver events ...
Avatar billede ladyhawke Novice
11. juni 2003 - 15:02 #26
Jeg loader den direkte i explorer, jeg bruger kun SWW som editor...

Hvordan skal funktionen enterSub skrives i html dokumentet, lige nu bliver den opfattet som tekst...
Avatar billede roenving Novice
11. juni 2003 - 15:02 #27
-- så kan du selvfølgelig godt fjerne den alert igen -- nu generer den jo bare !-)

-- men vi har konstateret, at koden this.form.submit() ikke kan undgå at køre -- så der må (som tidligere nævnt ,-) være andet, som gør noget ...
Avatar billede pelkjaer Nybegynder
11. juni 2003 - 15:04 #28
ehh...funktionen enterSub skal pakkes i script tags.

<script type="text/Javascript">
//funktion
</script>
Avatar billede ladyhawke Novice
11. juni 2003 - 15:10 #29
Mmmmm, jeg ved ikke hvorfor det ikke virker, kan det være fordi der skal en value med i min submit? I såfald skriver man så bare: document.formnavn.submit("value")  ??
Avatar billede roenving Novice
11. juni 2003 - 15:14 #30
Næeh, du må ikke komme noget ind i .submit() -- og hvis du bruger den i input-tagget, så det er this.form.submit() behøver du heller ikke navn på !-)
Avatar billede ladyhawke Novice
12. juni 2003 - 11:33 #31
Jeg har stadig ikke fået løst problemet, men jeg prøver fortsat...
Avatar billede pelkjaer Nybegynder
12. juni 2003 - 11:36 #32
Har du ikke prøvet: 
function enterSub()

virker glimerende her.
Avatar billede ladyhawke Novice
12. juni 2003 - 12:15 #33
hmmm, det her er hvad jeg har og hos mig giver enter ingenting:

<?
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
//header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>


<?php

if(isset($_POST["submit"]))
{   

$conn = mysql_connect("localhost", "root", "");
  mysql_select_db("testdb", $conn);

$result = mysql_query("select title1, url1, title2, url2, title3,url3 from url_list where uid = '$_POST[username]'", $conn);


    if(!mysql_num_rows($result) == 1)
    {
?>

<html>

<head>
<meta name="Generator" content="Stone's WebWriter 4 BETA 6">
<basefont face="Arial">
</head>

<body>
<center>
<font size="3">User name not found!</font><br>
<a href="db.php">Click here to try again.</a>
</center>
</body>
</html>

<?php
    }
   
else
    {

    $result = mysql_query("select title1,url1,title2,url2,title3,url3 from
url_list where uid = '$_POST[username]'", $conn);
    list($title1,$url1,$title2,$url2,$title3,$url3) =
mysql_fetch_row($result);

?>

<html>
<head>
<basefont face="Arial">
</head>
<body>
<center>
<font size="3">Welcome, <?php echo $_POST["username"]; ?>!</font><br>
Pick your destination:
<p>
<?php echo "<a href=$url1>$title1</a>"; ?> 
<?php echo "<a href=$url2>$title2</a>"; ?> 
<?php echo "<a href=$url3>$title3</a>"; ?>
<br><br>
<a href="db.php">Back</a>
</center>
</body>
</html>

<?php
mysql_free_result($result);
}
}
else
{

?>

<html>

<head>
<basefont face="Arial">
</head>

<body >
<?php
}
?>

</body>
</html>
<form name="formnavn" action="db.php" method="POST">

<script type="text/Javascript">
function enterSub() {
  if (window.event && window.event.keyCode == 13) { 
    document.formnavn.submit();
  } else {
    return true;
  }
}
</script>

<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username" length=10 maxlength="30">

</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Log in" onkeypress="enterSub();">
</form>
</td>
</tr>
</table>
</form>
Avatar billede roenving Novice
12. juni 2003 - 12:23 #34
onkeypress sender ikke chr(13) ,-|

du bliver nødt til at bruge onkeydown eller onkeyup for at få fat i enter-tasten !O]
Avatar billede roenving Novice
12. juni 2003 - 12:24 #35
>>pelkjaer
-- det'r åz din skyld ...
;O)
Avatar billede ladyhawke Novice
12. juni 2003 - 12:38 #36
hmmm, prøvede lige med onkeyup, men det giver heller ikke det ønskede resultat...
Avatar billede ladyhawke Novice
12. juni 2003 - 12:40 #37
er der en der kan tjekke det online? Jeg kan lave et dump af DB'en hvis det skal være...
Avatar billede ladyhawke Novice
12. juni 2003 - 12:43 #38
BTW:

<?php
}
?>


skal stå i bunden af koden ikke der hvor det står i koden tidligere...
Avatar billede pelkjaer Nybegynder
12. juni 2003 - 12:44 #39
roenving>>window.event.keyCode og onkeypress virker fint sammen - så nej det er vel næppe min skyld *LOL*

Jeg fatter ikke at du ikke kan få det til at funke, men prøv lige dette så:

function enterSub(f) {
  if (window.event && window.event.keyCode == 13) { 
    f.submit();
  } else {
    return true;
  }
}

<form name="formnavn" method="post">
  <input type="text" value="" onkeypress="enterSub(this.form);">
</form>
Avatar billede roenving Novice
12. juni 2003 - 12:57 #40
pelkjaer>>window.event.keyCode og onkeypress virker fint sammen ...

ja, ganske glimrende, men du får _kun_ ascii-karakterer, som kan skrives ud af det ... (char(32-126 osv ...))

-- ihvertfald, når jeg laver et lille detecting-script, som jeg har haft fat i nogle gange den sidste uge eller så ...
Avatar billede ladyhawke Novice
12. juni 2003 - 13:03 #41
Det ser således ud nu:

<form name="formnavn" action="db.php" method="POST">

<script type="text/Javascript">
function enterSub(f) {
  if (window.event && window.event.keyCode == 13) { 
    f.submit();
  } else {
    return true;
  }
}
</script>

<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" value="" name="username" length=10 maxlength="30" onkeypress="enterSub(this.form);"> 
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="Log in" >

</form>
</td>
</tr>
</table>
</form>

men resultatet er det samme
Avatar billede ladyhawke Novice
13. juni 2003 - 17:06 #42
Er der nogen af jer der kan/har afprøvet scriptet online?
Avatar billede ladyhawke Novice
19. juni 2003 - 13:52 #43
roenving og pelkjaer>> kan i ikke lægge et svar, jeg har endnu ikke løst det oprindelige problem, men lært en masse og fået god hjælp...
Avatar billede ladyhawke Novice
01. juli 2003 - 13:23 #44
hmmm siden der ikke kommer yderligere svar, vil jeg lukke her. Tak for hjælpen!!! Jeg fik løst en hel del andre problrmer undervejs...
Avatar billede roenving Novice
01. juli 2003 - 16:16 #45
Jamen, når du ikke får løst problemerne er der vel ikke grund til at smide omkring med points ;O)

No cure, No pay ,-)
Avatar billede ladyhawke Novice
01. juli 2003 - 22:37 #46
Nej for så vidt, men nu fik jeg svar på en del, som jeg ellers ville have spurgt om så... :o)
Avatar billede roenving Novice
02. juli 2003 - 01:36 #47
-- det lader til at Peter ikke li'e er aktiv -- mon det er ferietid ?-)

-- han vil sikkert gerne vente lidt på sit manna -- hvilket jeg heller ik' har no'et imod ,-)
Avatar billede ladyhawke Novice
02. juli 2003 - 09:24 #48
OK, men læg bare et svar, du var også med til at komme med et par gode tips... :o)
Avatar billede ladyhawke Novice
18. juli 2003 - 12:33 #49
Nå, jamen så lukker jeg da spørgsmålet, når de sidste ikke vil have point...
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