Avatar billede kingyo Nybegynder
22. oktober 2005 - 17:45 Der er 4 kommentarer og
1 løsning

Form virker i Firefox, ikke i IE

Jeg har en formular, som ligner alle andre formularer på min side. Problemet er, at lige netop denne ikke virker korrekt i Internet Explorer, men virker fint i Firefox.

Hvis man med musen trykker på Submit-knappen, så virker alt som det skal, men hvis man trykker på [Enter] knappen, så bliver indholdet af submit-knappen ikke sendt med i formen.

Nogen hjælp at hente?

<form action="./opholdsrum/kodeord.php" method="post">
<b>E-mail:</b>
<br /><input type="text" name="glemt_email" class="inputtext" style="width: 150px;" />
<br /><input type="submit" name="submit" value="Send anmodning" class="inputsubmit" style="background-image: url(<?=$rel;?>images/input.png)" />
</form>
Avatar billede olebole Juniormester
22. oktober 2005 - 20:16 #1
<ole>

For det første må du aldrig bruge navnet 'submit' til en submit-knap. Derved overskriver du JavaScripts indbyggede submit-metode.

Dernæst er det ikke smart at bruge submitknappens navn til noget somhelst - den skal nemlig ikke nødvendigvis sendes med som variabel. Derudover kan du bare bruge en billed-submit-knap.

Måden, det normalt gøres på er:

<form action="./opholdsrum/kodeord.php" method="post">
<input type="hidden" name="contxt" value="Send anmodning">
<b>E-mail:</b>
<br><input type="text" name="glemt_email" class="inputtext" style="width: 150px;">
<br><input type="image" name="submit" class="inputsubmit" src="<?=$rel;?>images/input.png">
</form>

På serveren spørger du så med:

<?
if ( isset($_POST["contxt"]) && $_POST["contxt"]=="Send anmodning" ) {
  // Gør noget med variablerne fra formen
}
?>

Læg i øvrigt mærke til, jeg har slettet alle dine XHTML-lukninger, da de opfattes som fejl af browseren. XHTML kan nemlig endnu ikke bruges på WWW - og der kommer til at gå år, før det kan. Ydermere vil de versioner, der idag er tilgængelige, ikke kunne bruges til den tid.

Vil man skrive god og velfungerende kode, bør man altså undgå XHTML og i stedet skrive HTML4.01, der er den seneste markup-version, der på fornuftig måde kan anvendes på WWW  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
22. oktober 2005 - 20:17 #2
- og så fik jeg zq selv kopieret navnet med. Der skal naturligvis stå:
  <br><input type="image" class="inputsubmit" src="<?=$rel?>images/input.png">
Avatar billede kingyo Nybegynder
22. oktober 2005 - 20:26 #3
Mange tak.. Forklaring følger:

For et par måneder siden blev jeg af en ven gjort opmærksom på hvordan vores intranet sendte deres log ind form afsted. Der blev jeg gjort opmærksom på at de gjorde som mig - gav submit-knappen et navn (i deres tilfælde, også submit) og tjekkede for om den indeholdt værdien. Gjorde den det, antog de den så for at være afsendt. Derefter har jeg gjort det samme, og det er første gang det fejler.

Jeg har dog allerede rettet min kode til, så den virker som jeg ellers ville have gjort det før, dvs. ligesom i dit eksempel ;)

Takker dog alligevel, du får point hvis du smider svar :)
Avatar billede olebole Juniormester
22. oktober 2005 - 20:51 #4
Selvtak - på den måde er du altid 100% sikker  ;o)

Prøv i øvrigt disse to forms, så kan du se, du overskriver formens submit-metode, når knappen hedder 'submit':

<form action="">
<button name="submitA" onclick="this.form.submit();return false">TEST</button>
</form>

<form action="">
<button name="submit" onclick="this.form.submit();return false">TEST</button>
</form>

Det er jo ikke sikkert, det skaber problemer i den aktuelle applikation (hvis I ikke bruge JS til at submitte med) - men én eller anden dag, støder du ind i problemet uden at forstå det ... hvis ikke du undgår fremgangsmåden i fremtiden  :)
Avatar billede olebole Juniormester
22. oktober 2005 - 21:01 #5
Tak for points  :)
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