Avatar billede danic Nybegynder
17. februar 2002 - 12:37 Der er 16 kommentarer og
2 løsninger

Dropdown box i HTML

Når jeg laver en dropdown box, kan jeg godt lige at den første linie i boksen indeholder en overskrift som i det her eksempel:

<FORM method="post" action="sog_navn.php">
<SELECT name="Valg">
<OPTION value="Søg på navn">Søg på navn</OPTION>
<OPTION value="Hans">Hans</OPTION>
<OPTION value="Peter">Peter</OPTION>
<OPTION value="John">John</OPTION>
</SELECT>
<INPUT type="submit" value="submit">
</FORM>

Men mit problem er at "Søg på navn" er en overskrift og ikke et navn, hvordan undgår jeg at man kan klikke submit til "Søg på navn". Hvis man ikke kan undgå dette hvordan laver jeg en fejlmeddelse der fortæller at der er fortaget en forket handling?
Avatar billede Slettet bruger
17. februar 2002 - 12:43 #1
//funktion der tjekker at man har valgt en værdi i en selectbox.
//Dette kræver at der er en option der ser således ud: <option value="0" SELECTED>En eller anden overskrift</option>
//her skal formnavn og selectnavn tilpasses
function checkValgtSelectbox() {
if (document.frm.selectnavn.selectedIndex==0) {
    alert ("\nDu skal vælge en værdi fra selectboxen")
    document.frm.selectnavn.focus();
    return false;
    } else {
    return true;
    }

} //funktion slut
Avatar billede Slettet bruger
17. februar 2002 - 12:50 #2
Din form skal så naturligvis lige tilpasses med

<FORM onsubmit="return checkValgtSelectbox();" name="frm" method="post" action="sog_navn.php">
Avatar billede danic Nybegynder
17. februar 2002 - 13:10 #3
Jeg er ikke helt sikker på formnavn og selectnavn

formnavn => ???
selectnavn => <SELECT name="Valg"> => Valg?
Avatar billede danic Nybegynder
17. februar 2002 - 13:14 #4
ah! <Form name="frm".....

men selectnavn vil typisk være en variabel kan man

if (document.frm.$Valg.selectedIndex==0) {
Avatar billede repsac Nybegynder
17. februar 2002 - 13:20 #5
du kan bare lade være med at smække en value på og i stedet hælde en disabled på:
<option disabled>blahh</option>

se evt. http://www.html.dk/dokumentation/html4/tags/option/
Avatar billede repsac Nybegynder
17. februar 2002 - 13:20 #6
... et svar... :)
Avatar billede danic Nybegynder
17. februar 2002 - 13:45 #7
el_barto> kan du se nogle fejl her jeg kan ikke få det til at virke.

Her er outputfra min browser, jeg køre med dynamisk dropdown boks:

<p><b>Søg på film i min gruppe:</b></p><br>
<FORM onsubmit="return checkValgtSelectbox(Søg film på ejer);" name="frm" method="post" action="sog_film_user.php">
<SELECT name="dvdValg">

<!-- Drop down box indhold -->
<OPTION value="0" SELECTED>Søg film på ejer</OPTION><OPTION value="Bo">Bo</OPTION><OPTION value="Duck">Duck</OPTION><OPTION value="elsner">elsner</OPTION></SELECT>
<INPUT type="submit" value="Vis Film">
</FORM>


Her er funktionen:

function checkValgtSelectbox($dvdValg) {
if (document.frm.$dvdValg.selectedIndex==0) {
    alert ("\nDu skal vælge en værdi fra selectboxen");
    document.frm.$dvdValg.focus();
    return false;
    } else {
    return true;
    }

} //funktion slut
Avatar billede danic Nybegynder
17. februar 2002 - 14:22 #8
<FORM onsubmit="return checkValgtSelectbox();" name="frm" method="post" action="sog_navn.php">
<SELECT name="selectnavn">
<OPTION value="Søg på navn">Søg på navn</OPTION>
<OPTION value="Hans">Hans</OPTION>
<OPTION value="Peter">Peter</OPTION>
<OPTION value="John">John</OPTION>
</SELECT>
<INPUT type="submit" value="submit">
</FORM>

function checkValgtSelectbox() {
if (document.frm.selectnavn.selectedIndex==0) {
    alert ("\nDu skal vælge en værdi fra selectboxen");
    document.frm.selectnavn.focus();
    return false;
    } else {
    return true;
    }

} //funktion slut
Avatar billede danic Nybegynder
17. februar 2002 - 14:24 #9
Ups!

Men den her vil hellere ikke virke :(

<FORM onsubmit="return checkValgtSelectbox();" name="frm" method="post" action="sog_navn.php">
<SELECT name="selectnavn">
<option value="0" SELECTED>Søg på navn</OPTION>
<OPTION value="Hans">Hans</OPTION>
<OPTION value="Peter">Peter</OPTION>
<OPTION value="John">John</OPTION>
</SELECT>
<INPUT type="submit" value="submit">
</FORM>


function checkValgtSelectbox() {
if (document.frm.selectnavn.selectedIndex==0) {
    alert ("\nDu skal vælge en værdi fra selectboxen");
    document.frm.selectnavn.focus();
    return false;
    } else {
    return true;
    }

} //funktion slut
Avatar billede Slettet bruger
17. februar 2002 - 15:35 #10
hehe...din funktion skal jo først og fremmest ind i nogle <script> tags, med angivelse af sprog Og så skal den op i head delen af dit dokument:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Untitled</title>

<script language="JavaScript1.2">

function checkValgtSelectbox() {
if (document.frm.selectnavn.selectedIndex==0) {
    alert ("\nDu skal vælge en værdi fra selectboxen");
    document.frm.selectnavn.focus();
    return false;
    } else {
    return true;
    }

} //funktion slut

</script>
   
</head>

<body>
<FORM onsubmit="return checkValgtSelectbox();" name="frm" method="post" action="sog_navn.php">
<SELECT name="selectnavn">
<option value="0" SELECTED>Søg på navn</OPTION>
<OPTION value="Hans">Hans</OPTION>
<OPTION value="Peter">Peter</OPTION>
<OPTION value="John">John</OPTION>
</SELECT>
<INPUT type="submit" value="submit">
</FORM>





</body>
</html>
Avatar billede danic Nybegynder
17. februar 2002 - 15:38 #11
Jeg har smidt den ind i min PHP funktions fil, og kalder den med include.

ohoh det er java!
Avatar billede Slettet bruger
17. februar 2002 - 15:41 #12
nej, javascript :)
Avatar billede danic Nybegynder
17. februar 2002 - 15:45 #13
Det virker nu tak!
(kan man ligge en java script funktion ind i en phpfunktions fil, og kalde java scriptet igennem phpfunktions filen?)

repsac> dit svar var også rigtigt så du får 5 points.
Avatar billede Slettet bruger
17. februar 2002 - 16:02 #14
Du kan vel blot lave en

echo '<script language="JavaScript1.2">

function checkValgtSelectbox() {
if (document.frm.selectnavn.selectedIndex==0) {
    alert ("\nDu skal vælge en værdi fra selectboxen");
    document.frm.selectnavn.focus();
    return false;
    } else {
    return true;
    }

} //funktion slut

</script>';

i din php funktion. Det virker også selvom man lægger det udenfor <head> delen, men det er mest rigtigt at lægge det indeni.

Tak for point!
Avatar billede repsac Nybegynder
17. februar 2002 - 17:23 #15
=>danic: hvorfor gøre det sværere end det er?
Avatar billede repsac Nybegynder
18. februar 2002 - 16:15 #16
Ingen kommentar... :(
Avatar billede Slettet bruger
18. februar 2002 - 18:10 #17
repsac> Brugeren får jo ikke nogen respons når man bruger din løsning. Så kan brugeren måske tro at der er et eller andet galt med siden.
Avatar billede repsac Nybegynder
18. februar 2002 - 22:08 #18
=>el_barto: det er ganske sandt, men hvis man vurderer at brugergruppen af sin side ikke er i stand til at skælne mellem overskrift og valg tror jeg det godt kan kræve nogen forklaring for at få det til at lykkedes at benytte dropdown-menuen... men måske er det bare mig.
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