Avatar billede celal Nybegynder
30. august 2004 - 10:19 Der er 10 kommentarer og
1 løsning

Validering af 2 submit knapper

Jeg har 2 submit knapper, den ene opdatere, og den anden søger.

Valideringen af felterne skal ske ud fra hvilke submit knap de klikker på. Jeg har prøvet fælgende, men der bliver ikke valideret noget, siden går simpelt hen bare videre til den side som den er sat til.

min kode ser således ud:



<form action="oprettelsesformular.asp" method="POST">


        <p><input type="submit" onclick="return validateForm(this);" name="Submit1" value="Opdater DB" >&nbsp;
            <input type="submit" name="Submit1" value="Søg i DB">&nbsp;
        <input type="reset" name="Sletknap" value="Slet indhold"><font face="Arial" size="2">&nbsp;</font></p>
      </form>




Jeg prøver med onclick="return validateForm(this);, men der sker desvære ikke noget. Når jeg skriver Onsubmit i <Form>, så virker det fint, men problemet er bare at så bliver begge knapper validere så snart man klikker på dem, og det skal det jo ikke..


Nogen som kan hjælpe??
Avatar billede roenving Novice
30. august 2004 - 11:26 #1
F.eks.

<script type="text/javascript">var actButton</script>
<form action="oprettelsesformular.asp" method="POST" onsubmit="return validateForm(actButton);">
  <p>
    <input type="submit" onclick="actButton=this;" name="Submit1" value="Opdater DB" >&nbsp;
    <input type="submit" onclick="actButton=this;" name="Submit2" value="Søg i DB">&nbsp;
    <input type="reset" name="Sletknap" value="Slet indhold"><font face="Arial" size="2">&nbsp;</font>
  </p>
</form>
Avatar billede celal Nybegynder
30. august 2004 - 13:39 #2
roenving: desvære, der sker ikke noget, den går bare videre.

Den første knap skal valideres på funktionen "validateForm" og den anden skal valideres på Funktionen "validateForm2". De skal ikke valideres på funktion.
Avatar billede celal Nybegynder
30. august 2004 - 13:39 #3
De skal ikke valideres på samme funktion
Avatar billede roenving Novice
30. august 2004 - 14:02 #4
Jo de skal !-)

Du bruger oplysningen om knappen til at splitte ud:

function validateForm(butt){
  if(butt.name=="Submit2")return validateForm2();
  //her den kode, som skal bruges til validering når det er den  første knap, der trykkes på !o]
  //...
  return true;
}

-- du skal så angive om den validerer korrekt ved at returnere enten true eller false i begge funktionerne ...

-- måske vil det også være nødvendigt at sætte en parameter på dit kald ?-)

<script type="text/javascript">var actButton</script>
<form action="oprettelsesformular.asp?action=" method="POST" onsubmit="return validateForm(actButton);">
  <p>
    <input type="submit" onclick="this.form.action+='update';actButton=this;" name="Submit1" value="Opdater DB" >&nbsp;
    <input type="submit" onclick="this.form.action+='search';actButton=this;" name="Submit2" value="Søg i DB">&nbsp;
    <input type="reset" name="Sletknap" value="Slet indhold"><font face="Arial" size="2">&nbsp;</font>
  </p>
</form>
Avatar billede celal Nybegynder
30. august 2004 - 14:31 #5
Det virkede ikke, men jeg kommet frem til en anden løsning, og det virker..:


function validering(a)
{
      for (var i=0;i<a.length;i++)
      {
        if (a[i].checked) return true;
      }
      return false;
}



function validateForm(knap,f) {

alert(knap);

if (knap ==1)
{

    //haveerrors = 0;

    if (!validering(f.R1))
    {
        alert("venligst Vælg en type");
        f.firmanavn.focus();
        return false;
      }

    else if (f.firmanavn.value.length < 1) // validate firmanavn length
    {    alert("Venligst udfyld Firmanavn");
        f.firmanavn.focus();
        return false;
    }
    else if (f.adresse1.value.length < 1) // validate Adresse length
    {    alert("Venligst udfyld Adresse");
        f.adresse1.focus();
        return false;
    }
    else if (f.postnr.value.length != 4 || parseInt(f.postnr.value ) < 1000) // validate post code length
    {    alert("Venligst udfyld Postnummer korrekt");
        f.postnr.focus();
        return false;
    }
    else if (f.city.value.length < 1) // validate City length
    {    alert("Venligst udfyld By");
        f.city.focus();
        return false;
    }
    else if (f.telefon.value.length < 8) // validate phone number length
    {    alert("Venligst udfyld telefonnummer korrekt");
        f.telefon.focus();
        return false;
    }
    else if (f.email.value.search("@") == -1 || f.email.value.search("[.*]") == -1 && f.email.value.length >0) // validate email
    {
        alert("Venligst udfyld E-mail korrekt");
        f.email.focus();
        return false;
    }
    return true;
    //return (!haveerrors);

}



if (knap ==2)
{

    if ( (validering(f.R1)) || f.firmanavn.value.length > 1 || f.adresse1.value.length > 1 || (f.postnr.value.length == 4 || parseInt(f.postnr.value ) > 1000) || f.city.value.length > 1)
    {

        return true;
      }

        alert("Venligst udfyld et af søge felterne");
        f.firmanavn.focus();
        return false;

}

}

//********************************

<script type="text/javascript">var actButton</script>
<form action="oprettelsesformular.asp" method="POST" onsubmit="return validateForm(actButton,this);">


<p><input type="submit"  onclick="actButton=1;"name="Submit1" value="Opdater DB" >&nbsp;
<input type="submit" onclick="actButton=2;"  name="Submit1" value="Søg i DB">&nbsp;
<input type="reset" name="Sletknap" value="Slet indhold"><font face="Arial" size="2">&nbsp;</font></p>
</form>
Avatar billede roenving Novice
30. august 2004 - 14:36 #6
Hvordan virkede det andet ikke ?-)

-- og den måde at gøre det på, som du har vist her sidst, ville jeg også have brugt selv og forslået dig, hvis ikke du havde skrevet, at funktionerne skulle være forskellige !-)
Avatar billede celal Nybegynder
30. august 2004 - 14:43 #7
det andet kunne jeg ikke få til at virke.

Men roenving, du kan måske hjælpe mig med noget andet:

Hvordan får jeg en knap til at videre til en anden side uden brug af submit:

<input type="button" value="Button" name="B1">

jeg vil gerne have at man kommer videre til næste side ved at klikke på Knappen.
normalt kan jeg bruge <a href="......" > <a/>, men det bliver bare til et link, hvor kan jeg bruge knappen?
Avatar billede roenving Novice
30. august 2004 - 14:50 #8
onclick !-)

<input type="button" value="Button" name="B1" onclick="location.href='http://www.domaine.dk';return false;">
Avatar billede celal Nybegynder
30. august 2004 - 15:38 #9
tak
Avatar billede roenving Novice
30. august 2004 - 16:01 #10
Velbekomme '-)
Avatar billede roenving Novice
03. november 2004 - 17:40 #11
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