Avatar billede encorez Nybegynder
08. april 2002 - 10:59 Der er 11 kommentarer og
1 løsning

disabled i felter

Jeg skal lave en formular og hvis en betingelse er opfyldt, så er der visse felter der IKKE må kunne udfyldes og det skal vises visuelt at man ikke skal udfylde de felter.
Mere præcist så har jeg en radiobutton, og hvis der i denne vælges JA, så er der to input felter som ikke må kunne udfyldes. I php kan jeg bruge disbled men den virker først efter jeg har fået submittet, fordi det er åbenbart først efter submit at radiobutton-variablen bliver sat. Men jeg vil selvfølgelig gerne have at man ikke må kunne skrive i input feltet lige så snart man har valgt JA
Avatar billede jakoba Nybegynder
08. april 2002 - 12:01 #1
if ( betingelse ) {
        // feltet skal slås fra
    document.formnavn.feltnavn.disabled = true;
} else {
        // feltet skal ikke slås fra
  document.formnavn.feltnavn.disabled = false;
}

Det er nemt at blive lidt forvirret for disabled er en 'negativ' attribut. når den er sand virker feltet ikke.

mvh JakobA
Avatar billede encorez Nybegynder
08. april 2002 - 13:30 #2
Jeg skal lige have lidt mere hjælp.
Jeg har brugt følgende.
<script>
if (hjemmeboende == ja) {
        // feltet skal slås fra
    document.formular.boligStr.disabled = true;
} else {
        // feltet skal ikke slås fra
  document.formular.boligStr.disabled = false;
}

som jeg har sat ind lige efter min radiobutton. Min radiobutton har name=hjemmeboende
og min jeg har nu givet min form et navn ved name="formular".

Skal jeg angive noget i toppen. Mener jeg. noget med langue=javescript eller sådan noget. Jeg er ikke så skrap i det
Avatar billede encorez Nybegynder
08. april 2002 - 13:33 #3
eller if (document.formular.hjemmeboende == ja)
Avatar billede jakoba Nybegynder
08. april 2002 - 13:48 #4
if (document.formular.hjemmeboende[0].checked)

radioknapper optræder som regel i grupper så de bliver onternet organiseret som et array.

Her lyder det somom der kun er een radioknap i gruppen (dvs kunne een radioknap med name='hjemmeboende'), den har så index 0.

Men jeg ville nu nok anbefale at du så bruge en checkboks istedet:
<input type='checkbox' name='hjemmeboende' value='who cares'>
og så adresserer den med:
if (document.formular.hjemmeboende.checked)

mvh JakobA
Avatar billede jakoba Nybegynder
08. april 2002 - 13:52 #5
anden del:
Ja der skal stå lidt mere i <script kommandoen:

<script type='text/javascript'>

noget andet er at den kode du har skrevet bliver kun udført een gang (idet siden hentes).
skulle det ikke snarere være en løbende check der slår de der felter fra (og til) idet brugeren klikker?
Avatar billede jakoba Nybegynder
08. april 2002 - 13:53 #6
Ups.  onternet  ->  internt
Avatar billede encorez Nybegynder
08. april 2002 - 14:09 #7
det er præcis det løbende check jeg er ude efter. Det er 2 radio knapper begge med name=hjemmeboende. Den ene har value JA og den anden NEJ.
Er den sat på JA er der et par normale input felter der ikke må udfyldes, men hvordan laver jeg så det løbende check
Avatar billede jakoba Nybegynder
08. april 2002 - 14:34 #8
hvid den der hedder ja står først i htmlfilen er adressen så
if (document.formular.hjemmeboende[0].checked)
hvis ja knappen står sidst er adressen
if (document.formular.hjemmeboende[1].checked)

sæt en onclick event på begge radioknap kommandoerne:

<input type='radio' name='hjemmeboende' value="ja eller nej" onclick="setFeltStatus()">

og lav så dit script som:

<script type='text/javascript'>

function setFeltStatus() {
    if (document.formular.hjemmeboende[0].checked) {
            // feltet skal slås fra
        document.formular.boligStr.disabled = true;
    } else {
            // feltet skal ikke slås fra
        document.formular.boligStr.disabled = false;
    }
}; //end setFeltStatus()

window.setFeltStatus = setFeltStatus;  // udelad linien hvis scriptet står i head sektionen

</script>

mvh JakobA
Avatar billede encorez Nybegynder
08. april 2002 - 14:45 #9
SÅ VIRKER DET, tusind tak

Hvad gør window.setFeltStatus = setFeltStatus egentlig
Avatar billede jakoba Nybegynder
08. april 2002 - 14:58 #10
når du laver en <script ... </scipt> kommando indeni <body kommandoen et sted (som du gør her) vil de variable og funktioner der defineres i den script-sektion komme til at ligge i browserens dokument-objekt

linien 
window.setFeltStatus = setFeltStatus;  // udelad linien hvis scriptet
tager det funktionsnavn vi har defineret og sørger for at det samme navn også er defineret i window objektet og peger på den samme funktion derfra.

mvh JakobA
Avatar billede encorez Nybegynder
08. april 2002 - 15:01 #11
jeg har lagt funktionen inden <html>
gør det noget?

En anden ting, har du en funktion på hånden til at tælle hvor mange char der er i en variabel. Altså hvis $navn = "encorez", så vil jeg gerne kunne tælle at encorez består af 7 tegn. Jeg kan bare ikke finde det. Ger i php hvis du kan det
Avatar billede jakoba Nybegynder
08. april 2002 - 15:13 #12
det er ukorrekt ifølge html standarden. den eneste kommando der bør stå før <html> er
<!doctype

så jeg vil anbefale du flytter det ned efter din <head kommando.

men din side vil sandsynligvis virke selvom det ikke står helt korrekt.
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