Avatar billede sthen Nybegynder
27. januar 2003 - 16:56 Der er 2 kommentarer og
2 løsninger

Kan dette ikke skrives nemmere/kortere ?

Jeg har en <form> med noget disable af radiobuttons v.hj.a. JavaScript, men jeg synes bare at det virker ENORMT kluntet og besværligt.

Det skal siges at det fungerer efter hensigten, men kan det ikke gøres nemmere (mere "strømlinet").

Scriptet som det ser ud nu:

<FORM METHOD="POST" ACTION="<? echo $_SERVER['PHP_SELF']; ?>">

<INPUT TYPE="RADIO" NAME="hvor" VALUE="intern" onClick="this.form.eks[0].disabled = true; this.form.eks[1].disabled = true; this.form.eks[2].disabled = true; this.form.eks[3].disabled = true; this.form.int[0].disabled = false; this.form.int[1].disabled = false; this.form.int[2].disabled = false; this.form.int[3].disabled = false;">Intern oplysning

<INPUT TYPE="RADIO" NAME="hvor" VALUE="ekstern" onClick="this.form.int[0].disabled = true; this.form.int[1].disabled = true; this.form.int[2].disabled = true; this.form.int[3].disabled = true; this.form.eks[0].disabled = false; this.form.eks[1].disabled = false; this.form.eks[2].disabled = false; this.form.eks[3].disabled = false;">Ekstern oplysning

<INPUT TYPE="RADIO" NAME="eks" VALUE="k">Koncert
<INPUT TYPE="RADIO" NAME="eks" VALUE="s">Sogneaften
<INPUT TYPE="RADIO" NAME="eks" VALUE="se">Seniorklub
<INPUT TYPE="RADIO" NAME="eks" VALUE="sp">Sær-arrangement

<BR>

<INPUT TYPE="RADIO" NAME="int" VALUE="m">Møde
<INPUT TYPE="RADIO" NAME="int" VALUE="v">Vielse
<INPUT TYPE="RADIO" NAME="int" VALUE="b">Begravelse
<INPUT TYPE="RADIO" NAME="int" VALUE="div">Andet

</FORM>
Avatar billede whatever Nybegynder
27. januar 2003 - 21:54 #1
Prøv dette: http://www.efusion.it/exp/310231.html

Jeg skulle mene, at det er lidt mere overskueligt.
Avatar billede olebole Juniormester
27. januar 2003 - 22:34 #2
<ole>

<script type="text/JavaScript">
function disRadios( inx, f ) {
    for ( i=0; i<4; i++ ) {
        if ( inx=="intrn" ) f.intrn[i].disabled = !(f.intrn[i].checked = f.eks[i].disabled = false);
        else f.eks[i].disabled = !(f.eks[i].checked = f.intrn[i].disabled = false);
    }
}
</script>

<FORM METHOD="POST" ACTION="<? echo $_SERVER['PHP_SELF']; ?>">

<INPUT TYPE="RADIO" NAME="hvor" VALUE="intern"
    onClick="disRadios('eks', this.form);">Intern oplysning

<INPUT TYPE="RADIO" NAME="hvor" VALUE="ekstern"
    onClick="disRadios('intrn', this.form);">Ekstern oplysning

<INPUT TYPE="RADIO" NAME="eks" VALUE="k">Koncert
<INPUT TYPE="RADIO" NAME="eks" VALUE="s">Sogneaften
<INPUT TYPE="RADIO" NAME="eks" VALUE="se">Seniorklub
<INPUT TYPE="RADIO" NAME="eks" VALUE="sp">Sær-arrangement

<BR>

<INPUT TYPE="RADIO" NAME="intrn" VALUE="m">Møde
<INPUT TYPE="RADIO" NAME="intrn" VALUE="v">Vielse
<INPUT TYPE="RADIO" NAME="intrn" VALUE="b">Begravelse
<INPUT TYPE="RADIO" NAME="intrn" VALUE="div">Andet

</FORM>

Den unchecker de radios, der disables. Jeg går udfra, det er, hvad de skal  :)
/mvh
</bole>
Avatar billede olebole Juniormester
27. januar 2003 - 22:48 #3
Sorry ... det var vist noget ugenerisk skrammel. Denne her er nok bedre:

function disRadios( inx, f ) {
    for ( i=0; i<f.elements.length; i++ ) {
        var e = f.elements[i];
        if ( e.name=="intrn" || e.name=="eks" ) {
            if ( e.name==inx ) e.checked = !(e.disabled = true);
            else e.disabled = false;
        }
    }
}
Avatar billede sthen Nybegynder
27. januar 2003 - 23:33 #4
Begge virker da upåklageligt, men brugte whatever's.
Tak for hjælpen til jer begge
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel