Avatar billede ghazaleh Nybegynder
18. januar 2005 - 10:58 Der er 10 kommentarer og
1 løsning

Form skal ikke submittes

Jeg har et link (mailto) inde i en tabel.

Problemet er at jeg har en onclick på hele tabellen der submitter en form.

Nu vil jeg så gerne have at når man lige præcis klikker på linket, så skal formen alligevel ikke submittes ved onclick.

Så umiddelbart må det være noget onclick-kode på mit link, som giver form.submit = false?
Avatar billede fixxxer Nybegynder
18. januar 2005 - 10:59 #1
måske kan du bruge

onclick="return false;"
Avatar billede ghazaleh Nybegynder
18. januar 2005 - 11:08 #2
har prøvet, men virker desværre ikke. Det bliver mit link der i stedet ikke aktiveres
Avatar billede di8leva Nybegynder
18. januar 2005 - 11:44 #3
<html>
<script language="JavaScript" type="text/JavaScript">
mailClicked = false;
function mailIt()
{
    mailClicked = true;
}
function submitIt()
{
    if(mailClicked)
    {
        mailClicked = false;
    }
    else
    {
        alert('doh');
    }
}
</script>
<table onClick="submitIt()">
<tr>
    <td>1</td><td>2</td><td>3</td>
</tr>
<tr>
    <td colspan="3"><a href="mailto:me@myself.com" onClick="mailIt()">Mail</a></td>
</tr>
</table>

</html>
Avatar billede ghazaleh Nybegynder
18. januar 2005 - 12:24 #4
Tak for svaret di8leva

Den submitter dog stadigvæk formen :-(

Skal "mailClicked" defineres nogle steder?
Avatar billede di8leva Nybegynder
18. januar 2005 - 12:29 #5
hvordan ser din kode ud?

meninger er at du ska byde ud "alert('doh');" mod "document.formname.submit();"
Avatar billede loevgaard Praktikant
18. januar 2005 - 12:55 #6
<form onsubmit="return false;">
Avatar billede ghazaleh Nybegynder
18. januar 2005 - 14:29 #7
Min kode ser sådan her ud:

****** Funktioner *******

function mailIt()
{
    mailClicked = true;
}

function SletKontakt(kontnv)
{
  if(mailClicked)
  {
    return false;
  }
  else
  {
    var agree=confirm("Skal " + kontnv + " slettes?");
    if (agree)
    {
      document.LANSA.submit();
    }
    else
    {
      return false ;
    }
  }
}

***** HTML ******
<form name="LANSA" target="pip.htm" method="post">
<table cellspacing="0" cellpadding="0" onmouseover=";this.style.backgroundColor='e2e2e2';this.style.cursor='hand';" onmouseout="this.style.backgroundColor='transparent';this.style.cursor='hand';" onclick="ValgKontakt()">
  <tr>
    <td width="200" class="tekst">navn</td>
    <td width="80" class="tekst">tlf</td>
    <td width="200" class="tekst"><a href="mailto:dostedjevski@tolstoj.ru" onclick="java script:mailIt()">dostedjevski@tolstoj.ru</a></td>
  </tr>
</table>
</form>
Avatar billede di8leva Nybegynder
18. januar 2005 - 14:44 #8
to ting:

ja, du skal definiera "mailClicked". Som du ser gør jeg det føre alla funktioner:
---------------------------------
<script language="JavaScript" type="text/JavaScript">

mailClicked = false; // <--- HER!

function mailIt()
{
    mailClicked = true;
}
......
---------------------------------

den metod du kalder i din <table onClick ("ValgKontakt()") er den som skal indeholde:

---------------------------------
if(mailClicked)
  {
    return false;
  }
  else
  {
........
---------------------------------
Avatar billede ghazaleh Nybegynder
18. januar 2005 - 14:50 #9
...og derefter fungerede det. Endnu et bevis på at det er en god idé at vise sin slamkode :-)

Tak for hjælpen
Avatar billede di8leva Nybegynder
18. januar 2005 - 14:56 #10
np :)
Avatar billede roenving Novice
18. januar 2005 - 15:31 #11
Hvad med bare:

    <td width="200" class="tekst"><a href="mailto:dostedjevski@tolstoj.ru" onclick="mailIt();event.cancelBubble=true;">dostedjevski@tolstoj.ru</a></td>
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