Avatar billede learner Praktikant
03. august 2004 - 21:11 Der er 16 kommentarer og
1 løsning

hvordan slår man validering fra når der trykkes tilbage?

Hej, jeg har en side hvor  der findes en
<< Forrige
og en
Næste >>

Det er begge submit knapper og det må der ikke laves om på.
Her er knapperne:
<input type="Submit" name="going_back_from_second_site" value="&lt;&lt; Forrige">
<input type="Submit" name="next_from_second_site" value="N&aelig;ste &gt;&gt;" onClick="Select_selected_modelid(viser_valgte_modelid);vaelg_modelid(this.form);Select_selected_variantid(viser_valgte_variantid);vaelg_variantid(this.form);Select_selected_fuelid(viser_valgte_fuelid);vaelg_fuelid(this.form)">

I <form>'en er der indsat følgende:
onSubmit="return CheckSecondSite()

og  her er functionen:
function CheckSecondSitecar(){
var viser_valgte_modelid        = document.form1.viser_valgte_modelid.value;
var yearfrom                    = document.form1.yearfrom.value;
var yearto                        = document.form1.yearto.value;
var viser_valgte_variantid        = document.form1.viser_valgte_variantid.value;
var viser_valgte_fuelid            = document.form1.viser_valgte_fuelid.value;

if (viser_valgte_modelid == 0)
  { alert("Venligst vælg hvilke model(ler) du har disse dele til");
    return false; }

if (yearfrom == 0)
  { alert("Venligst vælg årgang fra");
    return false; }

if (yearto == 0)
  { alert("Venligst vælg årgang til");
    return false; }

if (yearfrom > yearto)
  { alert("Fejl:  'Årgang fra' er større end 'Årgang til'");
    return false; }

if (viser_valgte_variantid == 0)
  { alert("Venligst vælg variant(er)");
    return false; }

if (viser_valgte_fuelid == 0)
  { alert("Venligst vælg typer brændstof(fer)");
    return false; }
return true;
}


Jeg kunne tænke mig at hvis man trykker på "næste" bliver der valideret, og hvis man trykker "forrige" skal der ikke evalueres!

Håber på hjælp! :o)

Michael
Avatar billede roenving Novice
03. august 2004 - 21:24 #1
Hvordan får du så formen til at gå baglæns ?-)

-- vil det ikke være nemmere med en history.go(-1) ...

-- men du kan udenfor funktion definere en variabel og så teste for den som det første:

var isGoingBack = false;
function CheckSecondSitecar(){
  if(isGoingBack)return;
Avatar billede learner Praktikant
03. august 2004 - 21:32 #2
Hej roenving, (igen) ;-) og tak for dit svar!

Spørgsmål:

mener du jeg skal indsætte dette i forrige-knappen:
onClick="var isGoingBack = false;"

og dette i function CheckSecondSitecar():
if(isGoingBack)return;

Michael
Avatar billede roenving Novice
03. august 2004 - 21:34 #3
Uden var, men ellers er det rigtigt, at jeg glemte den !-)
Avatar billede roenving Novice
03. august 2004 - 21:35 #4
<input type="Submit" name="going_back_from_second_site" value="&lt;&lt; Forrige" onclick="isGoingBack=true">

-- sæ'fø'li'
Avatar billede learner Praktikant
03. august 2004 - 21:35 #5
skal man ik os skrive: return true;

eller er det det samme?
Avatar billede learner Praktikant
03. august 2004 - 21:37 #6
skal jeg skrive som her? isGoingBack

eller må man skrive going_back_from_second_site ?

jeg mener er det for langt eller må man ikke bruge "_" tegn
Avatar billede roenving Novice
03. august 2004 - 21:45 #7
Jeg går ud fra at du aflæser hvilken knap der er trykket på server-side, så ja, der skal selvfølgelig være en return true; så formen submitter uden problemer ...

Du må gerne bruge de lange udgaver med underscores, men jeg forsøger at finde et kompromis mellem ordentligt beskrivende variabelnavne og ting, som er til at skrive, og der har jeg fundet interCap-metoden ganske smart, bl.a. fordi jeg kan tillade mig at bruge den overalt !o]

Både i html (som dog ikke kender forskel på de små og store !-), css (som også er beskrevet som ligeglad, men det har jeg ikke testet) og javascript, så alt dhtml kan skrives med den samme letlæselige standard ...

-- selvfølgelig må man ikke skrive attributter med store bogstaver i xhtml, men værdierne kan stort set være hvadsomhelst, så det giver ikke problemer !-)
Avatar billede learner Praktikant
03. august 2004 - 21:57 #8
okay, takker!

Jeg har lavet det, men det virker umiddelbart ikke efter hensigten. mærkeligt.. hmm..

Nu evaluerer den ikke mereoverhovedet, heller ikke når jeg trykker næste!

her er noget af koden:
function CheckSecondSitecar(){
  if(going_back_from_second_site){return true;}
  if(....
  osv....
}

og knapperne:
<input type="Submit" name="going_back_from_second_site" value="&lt;&lt; Forrige" onclick="going_back_from_second_site=true;">
<input type="Submit" name="next_from_second_site" value="N&aelig;ste &gt;&gt;" onClick="going_back_from_second_site=false;Select_selected_modelid(viser_valgte_modelid);vaelg_modelid(this.form);Select_selected_variantid(viser_valgte_variantid);vaelg_variantid(this.form);Select_selected_fuelid(viser_valgte_fuelid);vaelg_fuelid(this.form)">


og <form>'en:
<form name="form1" action="tilfoej-dele.php" method="post" onSubmit="return CheckFirstSite<?php echo $whichparts; ?>()">


Hvad gør jeg forkert? :-(
Avatar billede learner Praktikant
03. august 2004 - 21:59 #9
onSubmit="return CheckFirstSite<?php echo $whichparts; ?>()"> bliver til:
onSubmit="return CheckFirstSitecar()"> (jeg har tjekket!)
Avatar billede learner Praktikant
03. august 2004 - 22:03 #10
hey igen, jeg er lidt et fjols lige nu, jeg kom til at paste det forkerte ind herover. Jeg har altså lavet det rigtigt! altså i koden står der:

onSubmit="return CheckSecondSite<?php echo $whichparts; ?>()" og $whichparts="car"

Hvad dælen er der galt?
Avatar billede roenving Novice
03. august 2004 - 22:26 #11
Har du husket at sætte going_back_from_second_site som en global variabel ?-)
Avatar billede roenving Novice
03. august 2004 - 22:26 #12
-- med værdien false som startværdi !-)
Avatar billede learner Praktikant
03. august 2004 - 22:39 #13
nej,, faktisk ved jeg ik hvordan jeg gør det :-)
Har aldrig prøvet før!
Avatar billede roenving Novice
03. august 2004 - 22:47 #14
Inde i javascript-blokken men _udenfor_ alle funktioner:

var going_back_from_second_site = false;

Præcis, som jeg viste allerførst, hvor jeg af samme årsag har placeret erklæringen linjen foran en funktionserklæring, for så kommer man ikke til at lægge den inden i en anden funktion ved en fejl !-)
Avatar billede learner Praktikant
03. august 2004 - 23:23 #15
ok, nu virker det. det var derfor! Takker!
Smid et svar og få velfortjente point!

Tak!
Michael
Avatar billede roenving Novice
03. august 2004 - 23:25 #16
Velbekomme '-)
Avatar billede roenving Novice
17. august 2004 - 12:27 #17
-- 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