Avatar billede dennism Nybegynder
22. marts 2007 - 20:50 Der er 11 kommentarer og
1 løsning

JavaScript: submit()

Hvordan kan det være, at denne konstruktion ikke virker i safari:

<form method="post" action="http://www.google.com">
<input type="submit" name="submit" value="Knap 1">
<input type="submit" value="Knap 2" OnClick="this.disabled=true;this.form.submit();">

</form>

Hvis man trykker på "knap 2" så bliver man ikke sendt til google.
Avatar billede kalp Novice
22. marts 2007 - 21:28 #1
prøv med

<form method="post" action="http://www.google.com">
<input type="submit" name="submit" value="Knap 1">
<input type="button" value="Knap 2" OnClick="this.disabled=true;this.form.submit();">

</form>
Avatar billede roenving Novice
23. marts 2007 - 03:15 #2
De fleste browsere vil bruge submit-knapper til at submitte med, uanset hvad der ellers står på knappen, medmindre default-action aflyses, så et gæt er, at der blandes godt og grundigt, så browseren bliver forvirret ...

-- er det ikke nok med:

<form method="post" action="http://www.google.com">
  <input type="submit" name="submit" value="Knap 1">
  <input type="submit" value="Knap 2" onclick="this.disabled=true;">
</form>
Avatar billede olebole Juniormester
23. marts 2007 - 14:15 #3
<ole>

- og når vi nu har fat i forvirrede brusere, skal vi nok finde et andet navn til den første knap:
    <input type="submit" name="mySubmit" value="Knap 1">

- og så er der vel fare for, forskellige browsere tolker koden forskelligt - og dermed ikke vil være enige om, hvorvidt knap 2 skal disables før eller efter formen er submittet. Hvorfor skal den overhovedet disable's?

/mvh
</bole>
Avatar billede roenving Novice
23. marts 2007 - 14:21 #4
*lol*

-- den havde jeg simpelthen overset ...

-- for det er en klassiker, at elementet med navnet submit ikke har nogen ()-metode !-)
Avatar billede olebole Juniormester
23. marts 2007 - 14:22 #5
Naturligvis havde du overset den ... ellers _ved_ jeg, du havde rettet det med det samme  ;o)
Avatar billede dennism Nybegynder
28. marts 2007 - 15:32 #6
Jeg har roder meget med det, og er nu kommer frem til denne kode som virker:

<?
if (isset($_POST['action'])) {
    echo "Action: ".$_POST['action']."<br><br>";
}
?>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">

<input type="hidden" value="createUser" name="action">
    <input type="submit" value="Tilføj flere filer" OnClick="this.form.action.value='addFile';this.disabled=true;this.form.submit();">
    <input type="submit" value="Opret" OnClick="this.disabled=true;this.form.submit();">

</form>

Hvad siger I til den? Jeg synes bare det er mærkeligt, at man er nødt til at sætte en submit() på et input af typen submit.
Avatar billede roenving Novice
28. marts 2007 - 15:54 #7
Nu har du et element, der hedder action, der kolliderer med formens action-property ...
Avatar billede dennism Nybegynder
28. marts 2007 - 16:57 #8
Well, er dette så bedre? :)

<?
if (isset($_POST['submitAction'])) {
    echo "Sutmit-action: ".$_POST['submitAction']."<br><br>";
}
?>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">

<input type="hidden" value="createUser" name="submitAction">
    <input type="submit" value="Tilføj flere filer" OnClick="this.form.submitAction.value='addFile';this.disabled=true;this.form.submit();">
    <input type="submit" value="Opret" OnClick="this.disabled=true;this.form.submit();">

</form>
Avatar billede roenving Novice
28. marts 2007 - 17:12 #9
-- jepz !-)

-- og en hurtig test viser, at disablingen af knapperne sker før default-action udføres, hvilket åbenbart betyder, at submit ikke kan udføres, hvorfor der skal bruges .submit() ...
Avatar billede dennism Nybegynder
28. marts 2007 - 17:41 #10
Så siger jeg mange tak for hjælpen :)
Smider du lige et svar?
Avatar billede roenving Novice
28. marts 2007 - 18:01 #11
Velbekomme '-)
Avatar billede roenving Novice
29. marts 2007 - 14:05 #12
-- og tak for 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