Avatar billede bolmer Nybegynder
30. maj 2005 - 21:25 Der er 5 kommentarer og
1 løsning

"Deaktivere" søgefelt når der vælges fra Drop/down menu

Jeg har fået lavet et script som indeholder to afhængige drop/down menuer og et søge felt. Når man vælger en bestem værdi i drop/down menu 2 skal søgefeltet ikke kunne udfyldes. Findes der en funktion der kan deaktivere et søgefelt når en bestemt option vælges fra et select objekt?
Avatar billede kargo1 Nybegynder
30. maj 2005 - 23:24 #1
Du kan lave noget som det her:

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

<html>
<head>
    <title>Deaktivere s&oslash;gefunktion</title>
    <script language="JavaScript" type="text/javascript">
    <!--
        function aktiverFelt(enBox) {
            if (enBox.options[enBox.selectedIndex].value == 'yes')
                enBox.form.Tekstfelt.disabled = false;
            else enBox.form.Tekstfelt.disabled = true;
        }
    //-->
    </script>
</head>

<body>

<form action="#" name="testform" id="testform">
    <select name="aktiver" size="1" onchange="java script:aktiverFelt(this)">
        <option value="yes">Aktiv&eacute;r</option>
        <option value="no">Deaktiv&eacute;r</option>
    </select>
    <input type="text" name="Tekstfelt">
</form>

</body>
</html>
Avatar billede roenving Novice
04. juni 2005 - 15:27 #2
-- 3 væsentlige kommentarer:

1. Brug aldrig en doctype uden dtd-link (og brug 4.01 !-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

2. Det er noget vrøvl at fortælle javascript-fortolkeren, at den skal tolke script i en script-eventhandler som script !o]

-- så fjern den ugyldige script-kode, som java script: pseudo-fil-protokollen er !-)

    <select name="aktiver" size="1" onchange="aktiverFelt(this)">

3. Skal man lave noget på change-eventet på en select, er det smartest at have en 'død' option, så det altid reagerer !o]

    <select name="aktiver" size="1" onchange="java script:aktiverFelt(this)">
        <option>-- Vælg --</option>
        <option value="yes">Aktiv&eacute;r</option>
        <option value="no">Deaktiv&eacute;r</option>
    </select>

-- og så ville jeg iøvrigt nok selv finde på at bruge noget andet end value (og ikke bekymre mig om de browsere, som ikke kan finde ud af select.value !-)
Avatar billede roenving Novice
04. juni 2005 - 15:28 #3
*lol* -- jeg glemte så selv i den sidste at fjerne java script: - tingen ...
Avatar billede kargo1 Nybegynder
06. juni 2005 - 09:03 #4
roenving: tak for kommentarerne. Men hvad er det lige du mener med punkt 3 og med at bruge noget andet end value?
Avatar billede roenving Novice
08. juni 2005 - 02:31 #5
At onchange jo ikke forekommer, hvis du vælger den første option uanset at den ikke faktisk er valgt i forvejen !-)

-- og jeg ville som regel gå efter en løsning, som tog udgangspunkt i selectedIndex, da values som regel er alt for svære at undersøge, medmindre der kun er to-tre unikke, og i sammenhæng med at vise noget andet er det en fordel at have en talværdi, som man kan bruge til at slå op i f.eks. et array !o]
Avatar billede bolmer Nybegynder
07. juli 2005 - 11:40 #6
Lukker tråden
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