Avatar billede glen5000 Nybegynder
13. august 2004 - 10:01 Der er 4 kommentarer og
1 løsning

JavaScript virker ikke i Opera

Hej

Jeg har lavet et javascript som kan disable / enable samt checke / unchecke nogle forskellige checkbokse. Scriptet virker fint i Internet Exploere, men kun delvist i Opera.

Koden ser således ud:
<html><head></head><body>
<SCRIPT language="javascript" type="text/javascript">
function foerst(nr)
{
    document.getElementById(nr + "_foerst").disabled = true;
    var i = 1;
    while (i <= document.forms[0].antal.value) {
        if (nr != i && document.getElementById(i + "_foerst").checked == true && document.getElementById(i + "_foerst").disabled == true) {
            document.getElementById(i + "_foerst").checked = false;
            document.getElementById(i + "_foerst").disabled = false;
        }
        i++;
    }
}
function aktiv(nr) {
    if (document.getElementById(nr + "_aktiv").checked == false) {
        document.getElementById(nr + "_foerst").disabled = true;
        if (document.getElementById(nr + "_foerst").checked == true){
            document.getElementById(nr + "_foerst").checked = false;
            var i = 1;
            var s = false;
            while (s == false && i <= document.forms[0].antal.value) {
                if (document.getElementById(i + "_foerst").disabled == false){
                    document.getElementById(i + "_foerst").checked = true;
                    document.getElementById(i + "_foerst").disabled = true;
                    s = true;
                }
                i++;
            }
        }
    }
    else{
        document.getElementById(nr + "_foerst").disabled = false;
        var i = 1;
        var s = false;
        while (s == false && i <= document.forms[0].antal.value) {
            if (document.getElementById(i + "_foerst").checked == true) {
                s = true;
            }
            i++;
        }
        if (s == false){
            document.getElementById(nr + "_foerst").checked = true;
            document.getElementById(nr + "_foerst").disabled = true;
        }
    }   
}
function vis(nr) {
    if (document.getElementById(nr + "_vis").checked == false) {
        if (document.getElementById(nr + "_aktiv").checked == true) {
            document.getElementById(nr + "_aktiv").checked = false;
            aktiv(nr);
        }
        document.getElementById(nr + "_aktiv").disabled = true;
       
    }
    else{
        document.getElementById(nr + "_aktiv").disabled = false;
   
    }
}
function lock(nr) {
    if (document.getElementById(nr + "_lock").checked == false) {
        document.getElementById(nr + "_vis").disabled = false;
        if (document.getElementById(nr + "_vis").checked == true) {
            document.getElementById(nr + "_aktiv").disabled = false;
        }
    }
    else {
        document.getElementById(nr + "_vis").disabled = true;
        document.getElementById(nr + "_aktiv").disabled = true;
    }
}
function gem() {
    i = 1
        while (i <= document.forms[0].antal.value) {
            document.getElementById(i + "_foerst").disabled = false;
            document.getElementById(i + "_aktiv").disabled = false;
            document.getElementById(i + "_vis").disabled = false;
            document.getElementById(i + "_lock").disabled = false;
            i++
        }
        return true
}
</SCRIPT>
<form action='admstem/stem_ret.asp' method='post'onsubmit='return gem()'>
    <table border='0' class='bodytable' cellspacing='0'>
        <tr bgcolor='silver'>
            <td><b>Overskrift</b></td>
            <td><b>Først</b></td>
            <td><b>Aktiv</b></td>
            <td><b>Vis</b></td>
            <td><b>Lås</b></td>
        </tr>
        <tr>
            <td>Fodboldstøvler</td>
            <td align='center'><input type='checkbox' name='1_foerst' id='1_foerst' checked disabled onclick='foerst(1)'></td>
            <td align='center'><input type='Checkbox' name='1_aktiv' id='1_aktiv' checked onclick='aktiv(1)' ></td>
            <td align='center'><input type='Checkbox' name='1_vis' checked onclick='vis(1)'></td>
            <td align='center'><input type='Checkbox' name='1_lock' id='1_lock' onclick='lock(1)'></td>
        </tr>
        <tr>
            <td>Ny Bold</td>
            <td align='center'><input type='checkbox' name='2_foerst' id='2_foerst' onclick='foerst(2)'></td>
            <td align='center'><input type='Checkbox' name='2_aktiv' id='2_aktiv' checked onclick='aktiv(2)' ></td>
            <td align='center'><input type='Checkbox' name='2_vis' checked onclick='vis(2)'></td>
            <td align='center'><input type='Checkbox' name='2_lock' id='2_lock' onclick='lock(2)'></td>
        </tr>
        <input type='hidden' name='antal' value='2'>
    </table>
    <input type='submit' value='Gem Ændringerne' class='tbox'>
</form></body></html>

Siden kan også ses her: http://www22.brinkster.com/glen5000/help/default.htm

De 2 første kolonner virker fint, også i Opera, men de to sidste kolonner virker ikke. Jeg forstår det ikke, hvor jeg mener ikke jeg har brugt andre funktioner til de to sidste kolonner.

Kolonnen "Vis" skal disable alle de forgående i rækken og unchecke dem, hvis den bliver slået til, og enable aktiv hvis den bliver slået fra.

Kolonnen "Lås" skal disable vis og aktiv hvis den bliver slået til, og enable dem hvis den bliver slået fra.

Håber det er forklaring nok, til at der er nogle der kan hjælpe mig med at få det til at virke med Opera

Hilsen Glen
Avatar billede roenving Novice
13. august 2004 - 13:28 #1
Du har tal forrest i navnene, det kan have en indflydelse, da tal først i javascript identifiers er ulovligt, men jeg kan heller ikke se forskellen ...

-- og så har du ikke et id på vis-kolonnen !-)
Avatar billede roenving Novice
13. august 2004 - 13:44 #2
-- og selv om det ikke burde have nogen indflydelse, at du har tal forrest, så er det en god vane, at man ikke bruger det ...

-- og det virker heller ikke i Mozilla, og fejlen tyder på, at det er det manglende id ...
Avatar billede glen5000 Nybegynder
13. august 2004 - 13:48 #3
Det var pga. at der mangler id på vis kolonnen. Nu virker det, mange tak for hjælpen.

Smider du lige et svar.

Hilsen Glen
Avatar billede roenving Novice
13. august 2004 - 13:50 #4
Velbekomme '-)
Avatar billede roenving Novice
13. august 2004 - 13:59 #5
-- og tak for point ;~}
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