Avatar billede googolplex Novice
08. februar 2004 - 21:29 Der er 16 kommentarer og
1 løsning

Funktion skal nulstille select

Jeg har følgende funktion:

function ClearForm(form)
{
    form.reset;

    for(i=0;form.elements.length>i;i++)
    {
        switch(form.elements[i].type)
        {
            case 'text':
            form.elements[i].value = '';
            break;
            case 'password':
            form.elements[i].value = '';
            break;
            case 'textarea':
            form.elements[i].value = '';
        }
    }
}

Men den nulstiller ikke select-boxes som en <input type="reset" /> ville gøre det.
Avatar billede erikjacobsen Ekspert
08. februar 2004 - 21:32 #1
Prøv
  form.elements[i].selectedIndex=0;

men selvfølgelig er det ikke sikkert den starter i 0.
Avatar billede roenving Novice
08. februar 2004 - 21:53 #2
-- og en lille præcisering af eriks indlæg:

            case 'select':
            form.elements[i].selectedIndex = 0;


-- og hvad mener du med at det ikke er sikkert, at den starter i 0 ?-)

-- at den har en defaultSelected, som ikke er den første ?o]

-- den kender jeg ikke en vej til i javascript !-)
Avatar billede erikjacobsen Ekspert
08. februar 2004 - 22:00 #3
Hvis du har

  <select ...>
  <option>Øllebrød</option>
  <option selected>Havtaske med egen hank</option>
  </select>

vil min kode (med roenvings korrekte tilføjelse) ikke "nul"-stille som
en reset-knap. Skulle det gøre i JavaScript kræver det mig bekendt at
man opbevarer defaultværdier i et eller flere hidden felter. Men det er
vel hvad man har reset-knappen til.

Eller reset()-funktionen! Hvorfor kan den ikke bruges?
Avatar billede googolplex Novice
11. februar 2004 - 10:07 #4
Tak for feedback, men jeg er først lige begyndt at modtage mails (http://eksperten.dk/spm/463544), jeg vender tilbage i aften :)
Avatar billede googolplex Novice
17. februar 2004 - 23:25 #5
Sorry, havde helt glemt denne tråd, nogle der stadig følger med ?

http://googolplex.dk/formtest.php

Jeg vil gerne have at funktionen:

1. Fjerner alle hak i checkboxes.
2. Fjerner alle hak i radio fields.
3. Sætter select-boxes til det første element ('vaelg').

Nogen der kan tilrette funktionen ?
Avatar billede roenving Novice
18. februar 2004 - 10:00 #6
.reset()-funktionen indstiller alle felter (-blokke) til den værdi, de havde inden brugeren begyndte at gøre noget med formen, så under den forudsætning, at dine default-indstillinger på selects er at der ikke er en selected (eller at den første er selected !-) og checkboxe og radios er tomme inden, mangler din ovenstående kun en () bag reset, så fungerer den !-)

-- Værre bliver det, hvis du ønsker at sætte noget anderledes end de er fra start, for et felt og en checkbox kan vi tømme og en select sætte til første index, men en radio kan ikke tømmes ...
Avatar billede googolplex Novice
18. februar 2004 - 11:13 #7
Ok, men jeg havde faktisk () bagved form.reset, men da meldte den fejl?

Se selv: http://googolplex.dk/formtest.php
Avatar billede roenving Novice
18. februar 2004 - 11:27 #8
-- det er fordi du har kaldt din reset-knap for 'reset' !-)

-- så løsningen er

enten:

form.reset.click();

eller

<input type="reset" name="resetknap">
Avatar billede roenving Novice
18. februar 2004 - 11:29 #9
<html>
<head><title>Test reset</title>
<script type="text/javascript">
<!--
function jjrClearForm(f){
    f.reset();
    for(i=0;f.elements.length>i;i++)    {
        switch(f.elements[i].type)        {
            case 'text':
            f.elements[i].value = '';
            break;
            case 'checkbox':
            f.elements[i].checked = false;
            break;
            case 'radio':
            f.elements[i].checked = false;
            break;
            case 'password':
            f.elements[i].value = '';
            break;
            case 'textarea':
            f.elements[i].value = '';
        }
    }
}

//-->
</script>
</head><body>
<form action="/formtest.php" method="get" enctype="application/x-www-form-urlencoded" >
<input type="hidden" name="jjrsubmitcheck" value="issubmittet" />
<input type="checkbox" name="et" value="on" checked="checked" />
<input type="checkbox" name="to" value="on" />
<br /><input type="radio" name="sex" value="male" checked="checked" />
<input type="radio" name="sex" value="female" />
<input type="radio" name="sex" value="hermafrudit" />
<br /><input type="text" name="fornavn" value="Dit navn" maxlength="255" /><img src="/no.gif" title="Der er en fejl..." id="iconid8" />
<br /><input type="text" name="efternavn" value="Dit efternavn" maxlength="255" /><img src="/no.gif" title="Feltet 'efternavn' er ikke udfyldt korrekt!" id="iconid10" />
<br /><select name="profession" >
<option value="jjrvaelg" selected="selected" >- - vælg - -</option>
<option value="laerer" >Lærer</option>

<option value="paedagog" >Pædagog</option>
<option value="direktoer" >Direktør</option>
<option value="psykolog" >Psykolog</option>
<option value="uddannelse" >Under uddannelse</option>
</select><img src="/no.gif" title="Vælg venligst et emne fra rullemenuen" id="iconid12" />

<br /><input type="password" name="password" value="" /><img src="/no.gif" title="Feltet 'password' er ikke udfyldt korrekt!" id="iconid14" />
<br /><input type="password" name="password2" value="" /><img src="/no.gif" title="Feltet 'password2' er ikke udfyldt korrekt!" id="iconid16" />
<br /><input type="hidden" name="gemt" value="startværdi" />
<textarea name="besked" cols="25" rows="5" >Skriv din besked til mig her</textarea><img src="/no.gif" title="Feltet 'besked' er ikke udfyldt korrekt!" id="iconid19" />
<br /><input type="submit" name="send" value="Send til mig" />
<input type="reset" name="resetknap" value="Nulstil" />

<input type="button" name="clear" value="Slet alt" onclick="jjrClearForm(this.form);" />
</form>
</body></html>
Avatar billede googolplex Novice
18. februar 2004 - 11:42 #10
roenving: Nogen gange fortjener man at bliver slået i hovedet med noget tungt! Jeg har lige fortalt en anden gut, at han ikke må kalde sin reset-knap for reset og så gør jeg det selv, suk :(

Din anden kode virker også perfekt!!

Smid et svar :)
Avatar billede googolplex Novice
18. februar 2004 - 11:44 #11
Hov, lille ting: Hvis jeg nu gerne vil have at select-boxen altid skal sættes til det første element uanset selected="selected" (i dette tilfælde 'vaelg'), hvad gør jeg så ?
Avatar billede erikjacobsen Ekspert
18. februar 2004 - 11:47 #12
Efter reset() bruger du noget i retning af: form.elements[i].selectedIndex = 0;
Avatar billede roenving Novice
18. februar 2004 - 11:51 #13
-- så skal du tilbage til eriks og mine første kommentarer 08/02-2004 21:53:09, som erik også rigtigt gør opmærksom på !-)

-- og jeg synes nok, vi havde diskuteret dette en gang før, men jeg var åbenbart ikke så vågen dengang !o]

-- og så velbekomme '-)
Avatar billede googolplex Novice
18. februar 2004 - 11:58 #14
case 'select':
            form.elements[i].selectedIndex = 0;
            break;

Virker ikke :(
Avatar billede roenving Novice
18. februar 2004 - 12:27 #15
case 'select-one':
            form.elements[i].selectedIndex = 0;
            break;

-- og måske også:
            case 'select-multiple':
            form.elements[i].selectedIndex = 0;
            break;

-- og så tak for points ;~}
Avatar billede googolplex Novice
18. februar 2004 - 12:36 #16
Perfekt!!! Virker for begge:

http://googolplex.dk/formtest.php

Takker igen!

Går iøvrigt og venter på:

http://www.amazon.co.uk/exec/obidos/ASIN/0764557432/qid%3D1073318178/sr%3D1-4/ref%3Dsr%5F1%5F2%5F4/026-7895299-3508434

Så jeg kan spare lidt point :P
Avatar billede roenving Novice
18. februar 2004 - 12:48 #17
Nå, den har åbenbart fået en lidt senere udgivelses-dato ...

-- såvidt jeg husker havde den først udgivelsesdato omkring 1. februar !-)
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