Avatar billede webbe Nybegynder
15. december 2000 - 10:34 Der er 21 kommentarer og
1 løsning

Validering af dropdown-boxes!?

Hejsa!

Jeg har 3 drop-down-boxe som jeg vil validere ved hjælp af javascript.
Jeg har lavet script der validerer på sammen måde som almindelige text-fields, men den viser min wondow.alert hver gang uanset hvad jeg gør.

Mit script ser sådan ud:

function validate5() {
        if (document.forms.form1.genre.value = \"Vælg genre\")
        window.alert(\"Fejl: Du har valgt en genre der ikke er gyldig!\");
        document.forms.form1.genre.focus();
    }

Hvad er der galt!?
Avatar billede webbe Nybegynder
15. december 2000 - 10:35 #1
Scriptet kaldes via en onSubmit i min formular!
Avatar billede erikjacobsen Ekspert
15. december 2000 - 10:37 #2
if (document.forms.form1.genre.value == \"Vælg genre\")
Avatar billede erikjacobsen Ekspert
15. december 2000 - 10:38 #3
Men det virker ikke i NS4.5. Der skal du:

  if (document.forms.form1.genre[document.forms.form1.genre.selectedIndex].value = \"Vælg genre\")
Avatar billede erikjacobsen Ekspert
15. december 2000 - 10:39 #4
Undskyld:
if (document.forms.form1.genre[document.forms.form1.genre.selectedIndex].value == \"Vælg genre\")


;-))
Avatar billede webbe Nybegynder
15. december 2000 - 10:45 #5
Erik!

Det virker desværre ikke - heller ikke i Explorer....jeg poster lige koden som den ser ud nu....måske er det mig, der laver en fejl!

function validate5() {
        if (document.forms.form1.genre[document.forms.form1.genre.selectedIndex].value == \"Vælg genre\")
        window.alert(\"Fejl: Du har valgt en genre der ikke er gyldig!\");
        document.forms.form1.genre.focus();
    }
Avatar billede ldanielsen Nybegynder
15. december 2000 - 10:45 #6
Undskyld erikjacobsen men det er da:
if (document.forms.form1.genre.options[document.forms.form1.genre.selectedIndex].value == \"Vælg genre\")

eller virker det andet også?
Avatar billede webbe Nybegynder
15. december 2000 - 10:48 #7
ldanielsen!

Spanks man - det virkede....nu kommer fejlen ikke længere!
Avatar billede webbe Nybegynder
15. december 2000 - 10:50 #8
ldanielsen!

Var sq lidt for hurtigt med pointene der - virker ikke som det skal alligevel....nu kommer der nemlig ikke en window.alert når value i drop-down-boxen er \"Vælg genre\"!!!!
Avatar billede ldanielsen Nybegynder
15. december 2000 - 11:04 #9
Jeg går ud fra at det er den øverste option der er ugyldig. Hvis du sender formen uden at have klikket på genre-boxen, så melder den kun fejl hvis du har selectet den øverste i koden:

<select name=\"genre\">
<option selected>Vælg genre</option>
<option>jsdlkfjsl</option>
<option>jsdlkfjsl</option>
<option>jsdlkfjsl</option>
</select>

En anden fejl kunne være at value er \'vælg genre\', en rigtig grim tekststreng med både mellemrum og \'æ\'. Det var smartere at skrive øverste option som: <option selected value=\"intet\">Vælg genre</option>

og derefter
if (document.forms.form1.genre.options[document.forms.form1.genre.selectedIndex].value == \"intet\")

aller smartest er det, hvis det kun er den øverste der ikke gælder at sige:
if (document.forms.form1.genre.selectedIndex == 0)
Avatar billede webbe Nybegynder
15. december 2000 - 11:10 #10
ldanielsen!

Feeeeed - nu virker det!
Du har helt klart fortjent pointene!
Avatar billede erikjacobsen Ekspert
15. december 2000 - 11:13 #11
Jeg gætter på du også mangler et par krølleparanteser i if-sætningen, samt skal sige
return false og return true passende steder.

Ja, ldanielsen, man bør sige options  - men det virker alligevel
Avatar billede webbe Nybegynder
15. december 2000 - 11:14 #12
Erik!

Nope - mangler ingen krøller.....det virker som det står her:

function validate5() {
        if (document.forms.form1.genre.options[document.forms.form1.genre.selectedIndex].value == \"intet\")
        window.alert(\"Fejl: Du har valgt en genre der ikke er gyldig!\");
        document.forms.form1.genre.focus();
    }
Avatar billede erikjacobsen Ekspert
15. december 2000 - 11:16 #13
Der er nu ingen grund til at sige focus til selectboxen, hvis den er ok. Eller er der?
Avatar billede webbe Nybegynder
15. december 2000 - 11:20 #14
Erik!

Jo - får hvis man får window.alert skal den hoppe hen til det felt der ikke er udfyldt!
Avatar billede erikjacobsen Ekspert
15. december 2000 - 11:23 #15
Ja, men hvis det ER udfyldt skal man da ikke hoppe derhen. Det er det du gør,
når du ikke har de der krølleparanteser. Hvordan styrer du iøvrigt om der afleveres
true eller false til den onsubmit?
Avatar billede webbe Nybegynder
15. december 2000 - 11:24 #16
Erik!

Jeg laver et hidden field med valuen false!
Og den hopper ikke hen til feltet hvis det er udfyldt!
Avatar billede erikjacobsen Ekspert
15. december 2000 - 11:27 #17
JO den gør. Din funktion skal være:

function validate5() {
  if (document.forms.form1.genre.options[document.forms.form1.genre.selectedIndex].value == \"intet\") {
      window.alert(\"Fejl: Du har valgt en genre der ikke er gyldig!\");
      document.forms.form1.genre.focus();
  }
}

Kan du se forskellen. Hvad med de true og false??
Avatar billede webbe Nybegynder
15. december 2000 - 11:29 #18
Erik!

Helt ærligt....det virker på den måde som jeg har tænkt mig....den hopper ikke nogen steder hen og mine true og false værdier virker også!

End of story!
Avatar billede erikjacobsen Ekspert
15. december 2000 - 11:30 #19
ok - you\'re the boss. Men jeg tror ikke du har alt med. Ligemeget.
Avatar billede webbe Nybegynder
15. december 2000 - 11:31 #20
Erik!

Ved jeg heller ikke om jeg har, da jeg ikke har særlig meget erfaring med javascript, men jeg kan jo se at det virker som det skal!

Håber du forstår!
Avatar billede erikjacobsen Ekspert
15. december 2000 - 11:35 #21
Jeg forstår. Du oplever at det virker i én browser. Men det skal måske aldrig
på nettet ;-)
Avatar billede webbe Nybegynder
15. december 2000 - 11:36 #22
Jo - men det er til rent internt brug i firmaet...har jo lavet et andet project, der minder lidt om det og det kører fint på nettet!
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