Avatar billede compilos Nybegynder
29. marts 2000 - 21:28 Der er 6 kommentarer og
1 løsning

onunload

Jeg har nogle inputfelter på en form.
Jeg vil gerne have at felterne bliver reset nå brugerne forlader siden
Avatar billede dar Nybegynder
29. marts 2000 - 22:24 #1
Undskyld jeg spø'r, men hvilken interresse skulle du have i det? Nå men her er det:

Vi siger at inputfelterne hedder felt1,felt2 og felt3 og formen hedder theform:

<script>
function ryd() {
document.theform.felt1.value = "";
document.theform.felt2.value = "";
document.theform.felt3.value = "";
}
</script>

Så skal body-tagget blot se således ud:

<body onunload="ryd()">

Det skulle kunne klare det
Avatar billede olebole Juniormester
30. marts 2000 - 03:11 #2
<ole>
dar >> Det kan du komme ud for, hvis du f.eks. laver en JavaScript indkøbskurv med produktsider, hvor du vælger varer og antal - for derefter at trykke 'Læg til bestilling'. Efter at have besøgt nogle varesider trykker du 'Se bestilling'. På siden 'Endelig bestilling' trykker du 'Back' på din browser - for at bestille yderligere varer - og kommer tilbage til sidste vareside, hvor alle tallene stadig står! De skulle gerne have været slettet på onunload, så de ikke bestilles to gange.

Har selv lige siddet med problemet ;-)

Denne er måske lidt mere 'sexy':

<script language="JavaScript"><!--

function ryd() {
  for (i=0; i<document.theform.length-1; i++) {
    document.theform.elements[i].value = "";
  }
}

// -->
</script>

Udtrykket:
  i<document.theform.length-1
tager højde for at du har ét input-element liggende EFTER de felter, du ønsker at nulstille...derfor: 'length-1'. Det er selvfølgelig submit-knappen, jeg tænker på. Har du flere må du ændre her.
Har du et element liggende FØR felterne, må du rette i:
  for (i=0;
F.eks til:
  for (i=1;
ved ét element FØR felterne, du ønsker at slette.

/VH
</bole>
Avatar billede dar Nybegynder
30. marts 2000 - 12:12 #3
måske man osse bare kunne sige <a href="java script:document.theform.reset()">reset den skide form!!</a>
Avatar billede olebole Juniormester
31. marts 2000 - 04:05 #4
Så sletter du også alle felter af typen 'hidden', du måtte have sat dynamisk - og det gør man netop meget i f.eks. shopping carts, hvor man udskriver siden med document.write fra nogle arrays. Det kan være varens pris (det er pænere at skrive prisen i alm. html, end have den i et tekstfelt), varenummer, skostørrelse, osv - altsammen gemt som 'hidden'.
Når du så kommer tilbage til siden via 'back' knappen, er disse data væk...sur røv!

Så det skal gøres lidt mere 'nænsomt' ;-)
Avatar billede olebole Juniormester
31. marts 2000 - 04:10 #5
Med en lidt mere udførlig funktion, kan man også få den til at springe felter over i for-løkken.
Netop i cart-løsninger er det jo ens rækker under hinanden, der skal slettes felter i. Man kunne f.eks. skrive:

function ryd() {
  for (i=0; i<document.theform.length-1; i+=6) {
    document.theform.elements[i].value = "";
    document.theform.elements[i+3].value = "";
    document.theform.elements[i+5].value = "";
  }
}
Avatar billede olebole Juniormester
11. april 2000 - 06:45 #6
Men han havde åbenbart ikke brug for det...eller hvad? ;-))
Avatar billede compilos Nybegynder
21. juli 2000 - 10:53 #7
Jeg er ved at rydde op, her er pointene
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