Avatar billede tblaster Nybegynder
27. august 2003 - 13:59 Der er 28 kommentarer og
1 løsning

Form skal automatisk submitte

Jeg har denne form:

<form onSubmit="return changePage(this);" ACTION="System.asp" target="Bund" name="welcome" method="get" enctype="text/plain">
    Vælg en kunde:
    <div style="font-family: arial; font-size: 11px; margin-bottom: 3px;">
        <select name="Kunde"
                size="15"
                onChange="PopulatePane(this, 'Modul'); changeTextBlock(this);"
                style="font-family: arial; font-size: 11px">
            <option value="0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select>
        <select name="Modul"
                size="15"
                onChange="PopulatePane(this, 'Tema'); changeTextBlock(this);"
                style="font-family: arial; font-size: 11px">
            <option value="0">[Step 2]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select>
        <select name="Tema"
                size="15"
                style="font-family: arial; font-size: 11px;"
                onChange="if (this.form.Tema.options[this.form.Tema.selectedIndex].value == 0) { this.form.Tema.selectedIndex -= 1 }; changeTextBlock(this);">
            <option value="0">[Step 3]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select>
    </div>
    <INPUT NAME="Submit" TYPE="submit" VALUE="Go!">
</FORM>

Hvordan får jeg lavet så når man trykker på et af valgmulighederne uder de 3 select så submitter den automatisk, altså som om man trykkede på Go! knappen.
Avatar billede roenving Novice
27. august 2003 - 14:02 #1
I din changeTextBlock(sel)-funktion indsætter du denne linje nederst:

sel.form.submit();

-- evt. med:

if(changePage(sel.form)) sel.form.submit();
Avatar billede kongkeil Nybegynder
27. august 2003 - 14:03 #2
Forme har en submit() function,
så du skal tilføje "this.form.submit();" i din onchange event på select felterne
Avatar billede tblaster Nybegynder
27. august 2003 - 14:13 #3
Roenvig ... jeg kan ikke få din til at virke ...

Kongekeil ... med din submitter funktionen men den side der åbnes er nøjagtig den samme. Der sendes altså ikke nogle informationer til siden.
Avatar billede roenving Novice
27. august 2003 - 14:15 #4
Nu ved jeg jo ikke, hvad din select hedder i funktionen, så jeg måtte opfinde en henvisning, her 'sel' ...

Den skal selvfølgelig skiftes ud med det, den ellers kaldes !-)

-- og det andet forslag var fordi en onsubmit _ikke_ udføres med form.submit()
Avatar billede tblaster Nybegynder
27. august 2003 - 14:16 #5
Dette er min changePage():

function changePage(form) {

        PaneValues = form.Temaområde.options[form.Temaområde.selectedIndex].value.split("_");
        ModulValue = PaneValues[0] + "_" + PaneValues[1]
        DriverValue = ModulValue + "_" + PaneValues[2];
        whichArray = eval("Temaområde" + PaneValues[0] + "_" + PaneValues[1]);
        for (i = 0; i < whichArray.length; i++) {
            if (whichArray[i].ID == DriverValue) {
                form.action = "java script:document.location.href = '" + strURLPrefix + whichArray[i].URL + "';";
                break;
            }
        }
        return true;
}
Avatar billede tblaster Nybegynder
27. august 2003 - 14:20 #6
Hvordan får jeg den så til at både udføre onsubmit samt form.submit()
Avatar billede roenving Novice
27. august 2003 - 14:28 #7
Hvordan ser changeTextBlock(sel)-funktionen ud ?-)
Avatar billede tblaster Nybegynder
27. august 2003 - 14:30 #8
Her er lige hele min kode, så er det nok nemmere at se på det:

function InitializeKunde(currentForm) {
    for (var i=0; i < Kunde.length; i++) {
        eval(currentForm + ".Kunde.options[i] = new Option('" + Kunde[i].Name + "')");
        eval(currentForm + ".Kunde.options[i].value = " + Kunde[i].ID);
    }
}

function PopulatePane(currentPane, paneToPopulate) {
    var selectedArray, i;
    var selected = currentPane.options[currentPane.selectedIndex].value
    if (selected == 0) {
        if (currentPane.selectedIndex != 0)
            selected = currentPane.options[--currentPane.selectedIndex].value;
        else {
            currentPane.selectedIndex = -1;
            return false;
        }
    }
           
    selectedArray = eval(paneToPopulate + selected);
    paneToPopulate = eval("currentPane.form." + paneToPopulate)

    for (i = currentPane.form.elements.length - 1; i > 0; i--) {
        paneToClear = paneToPopulate.form.elements[i]
        if (paneToClear == paneToPopulate) {
            break;
        }
        if (paneToClear.name == "Tema" || paneToClear.name == "Modul" || paneToClear.name == "Kunde") {
            for (i = paneToClear.options.length; i != 0; i--) {
                paneToClear.options[i - 1] = null;
            }
        }
    }
    while (selectedArray.length < paneToPopulate.options.length) {
        paneToPopulate.options[(paneToPopulate.options.length - 1)] = null;
    }
    for (i = 0; i < selectedArray.length; i++) {
        if ( selectedArray[i] == null || selectedArray[i] == "" ) {
            alert("There is no " + paneToPopulate.Name + " associated with this " + currentPane.Name);
        } else {
            eval("paneToPopulate.options[i] = new Option('" + selectedArray[i].Name + "')");
            eval("paneToPopulate.options[i].value = '" + selectedArray[i].ID + "'");
        }
    }
    if (document.welcome.Tema.options[0] == null) {
        document.welcome.Tema.options[0] = new Option("[Step 3]                            ");
        document.welcome.Tema.options[0].value = 0;
    }
}

function changePage(form) {

        if (form.Tema.selectedIndex != -1 || form.Modul.selectedIndex != -1 || form.Kunde.selectedIndex == 0) {
        PaneValues = form.Temaområde.options[form.Temaområde.selectedIndex].value.split("_");
        ModulValue = PaneValues[0] + "_" + PaneValues[1]
        DriverValue = ModulValue + "_" + PaneValues[2];
        whichArray = eval("Temaområde" + PaneValues[0] + "_" + PaneValues[1]);
        for (i = 0; i < whichArray.length; i++) {
            if (whichArray[i].ID == DriverValue) {
                form.action = "java script:document.location.href = '" + strURLPrefix + whichArray[i].URL + "';";
                break;
            }
        }
        return true;
    } else {
        alert("Du manlger at udføre en eller flere steps.");
        return false;
    }
}

function changeTextBlock(whichPane) {
    if (whichPane.selectedIndex == -1)
        return false;
   
    var newDescription;
    switch (whichPane.name) {
        case "Kunde" :
            newDescription = Kunde[whichPane.selectedIndex].DescriptionText;
            break;
        case "Modul" :
            newDescription = eval("Modul" + whichPane.form.Kunde.options[whichPane.form.Kunde.selectedIndex].value + "[" + whichPane.selectedIndex + "].DescriptionText");
            break;
        case "Tema" :
            newDescription = eval("Tema" + whichPane.form.Modul.options[whichPane.form.Modul.selectedIndex].value + "[" + whichPane.selectedIndex + "].DescriptionText");
            break;
    }
    if (NS4) {
        eval(layerRef + '["description"].document.open()');
        eval(layerRef + '["description"].document.write(newDescription)');       
        eval(layerRef + '["description"].document.close()');       
    } else if (NS6) {
        eval(layerRef + '("description").innerHTML=newDescription');
    } else {
        eval(layerRef + '["description"].innerHTML=newDescription');
    }
}

var bName = navigator.appName;
var bVer = parseInt(navigator.appVersion);
var NS4 = (bName == "Netscape" && bVer == 4);
var NS6 = (navigator.vendor == "Netscape6");
var IE4 = (bName == "Microsoft Internet Explorer" && bVer >= 4);
var Opera = (window.opera)

if (NS4) {
    layerRef="document.layers";
    styleSwitch="";
} else if (IE4) {
    layerRef="document.all";
    styleSwitch=".style";
} else if (NS6 || Opera) {
    layerRef="document.getElementById";
    styleSwitch=".style";
}
Avatar billede roenving Novice
27. august 2003 - 14:50 #9
Så burde det være (jeg har dog ikke gennemgået det fuldstændigt !-)

function changeTextBlock(whichPane) {
    if (whichPane.selectedIndex == -1)
        return false;
   
    var newDescription;
    switch (whichPane.name) {
        case "Kunde" :
            newDescription = Kunde[whichPane.selectedIndex].DescriptionText;
            break;
        case "Modul" :
            newDescription = eval("Modul" + whichPane.form.Kunde.options[whichPane.form.Kunde.selectedIndex].value + "[" + whichPane.selectedIndex + "].DescriptionText");
            break;
        case "Tema" :
            newDescription = eval("Tema" + whichPane.form.Modul.options[whichPane.form.Modul.selectedIndex].value + "[" + whichPane.selectedIndex + "].DescriptionText");
            break;
    }
    if (NS4) {
        eval(layerRef + '["description"].document.open()');
        eval(layerRef + '["description"].document.write(newDescription)');       
        eval(layerRef + '["description"].document.close()');       
    } else if (NS6) {
        eval(layerRef + '("description").innerHTML=newDescription');
    } else {
        eval(layerRef + '["description"].innerHTML=newDescription');
    }
    if(changePage(whichPane.form)) whichPane.form.submit();
}
Avatar billede tblaster Nybegynder
27. august 2003 - 15:13 #10
Så får jeg dennef fejl:
Error: 'Temaområde.options' is null or not an object
Avatar billede roenving Novice
27. august 2003 - 15:18 #11
-- og det virker, når du trykker på submit-knappen ?-)
Avatar billede tblaster Nybegynder
27. august 2003 - 15:22 #12
Yep det virker fint når jeg trykker på submit knappen!
Avatar billede roenving Novice
27. august 2003 - 15:30 #13
I den form du har dumpet er der jo ikke et felt, som hedder Temaområde, derfor må jeg jo spørge til det !-)
Avatar billede tblaster Nybegynder
27. august 2003 - 15:44 #14
Her er det hele, så skulle der ikke være noget du mangler eller ikke forstår:


Response.write "<script language=""JavaScript""> " & vbcrlf
Response.write "<!-- " & vbcrlf
Response.write "function Entry(ID, Name, DescriptionText, URL) " & vbcrlf
Response.write "{ " & vbcrlf
Response.write "    this.ID = ID; " & vbcrlf
Response.write "    this.Name = Name; " & vbcrlf
Response.write "    this.DescriptionText = DescriptionText; " & vbcrlf
Response.write "    this.URL = URL; " & vbcrlf
Response.write "} " & vbcrlf & vbcrlf


sql= "SELECT * FROM Kunder Where KundeID > 0 Order By Navn"
rs.Open Sql, Conn,1

Response.write "var Kunde = new Array() ; " & vbcrlf
Response.write "Kunde[0] = new Entry(""1 "","" [Opret NY] "",""Tryk på overstående knap for at oprette en ny kunde."");"
counter =  1

Do While Not rs.EOF
%>
Kunde[<%=counter%>] = new Entry("<%=rs("KundeID")%> "," <%=rs("Navn")%> ","Navn: <%=rs("Navn")%><br>Domæne: <%=rs("website")%><br>Kontaktperson: <a href='mailto:<%=rs("Mail")%>'><%=rs("Kontaktperson")%></a><br>Telefon: <%=rs("Telefon")%><br>Aktiv / ikke aktiv");
<%
counter = counter + 1
rs.movenext
loop
Rs.Close
Set sql = Nothing

sql= "SELECT * FROM Modul Where KundeID > 0 Order By KundeID"
rs.Open Sql, Conn,1

Response.write vbcrlf & "var Modul1 = new Array() ; " & vbcrlf
Response.write "Modul1[0] = new Entry(""1_1 "","" - "",""Tryk på overstående knap for at oprette en ny kunde."");" & vbcrlf

Do While Not rs.EOF

If KundeID <> rs("KundeID") Then
KundeID = ""
End If

If KundeId = "" Then
Response.write vbcrlf & "var Modul" & rs("KundeID") & " = new Array() ; " & vbcrlf
Response.write "Modul" & rs("KundeID") & "[0] = new Entry(""1_1"","" [Opret Ny] "",""Opret et nyt Temaområde"");"
KundeId = rs("KundeID")
counter =  1
End If

%>
Modul<%=rs("KundeID")%>[<%=counter%>] = new Entry("<%=rs("KundeID")%>_<%=rs("ModulID")%> "," <%=rs("Navn")%> ","Her er noget om modulet");
<%
counter = counter + 1
rs.movenext
loop

ModulID = ""

Rs.Close
Set sql = Nothing

sql= "SELECT * FROM Temaområde Where KundeID > 0 Order By ModulId"
rs.Open Sql, Conn,1

Response.write vbcrlf & "var Tema1_1 = new Array() ; " & vbcrlf
Response.write "Tema1_1[0] = new Entry(""1 "","" - "",""Tryk på overstående knap for at oprette en ny kunde."");" & vbcrlf

Do While Not rs.EOF

If ModulID <> rs("ModulID") Then
ModulID = ""
End If

If ModulId = "" Then
Response.write vbcrlf & "var Tema" & rs("KundeID") & "_" & rs("ModulID") & " = new Array() ; " & vbcrlf
%>
Tema<%=rs("KundeID")%>_<%=rs("ModulID")%>[0] = new Entry("NY"," [Opret Ny] ","Opret et nyt Temaområde");
<%
ModulId = rs("ModulID")
counter =  1
End If

%>
Tema<%=rs("KundeID")%>_<%=rs("ModulID")%>[<%=counter%>] = new Entry("<%=rs("TemaområdeID")%>"," <%=rs("Navn")%> ","Her er noget om Temaområdet");
<%
counter = counter + 1
rs.movenext
loop

Rs.Close
Set sql = Nothing

sql="SELECT DISTINCT M.KundeID, M.ModulID FROM Modul AS M WHERE M.ModulID NOT IN (SELECT ModulID FROM TemaOmråde)"
rs.Open Sql, Conn,1

Do While Not rs.EOF
%>
var Tema<%=rs("KundeID")%>_<%=rs("ModulID")%> = new Array() ;
Tema<%=rs("KundeID")%>_<%=rs("ModulID")%>[0] = new Entry("NY"," [Opret Ny] ","Opret et nyt Temaområde");
<%
rs.movenext
loop
%>
<!-- #INCLUDE FILE="dbClose.asp" -->

function InitializeKunde(currentForm) {
    for (var i=0; i < Kunde.length; i++) {
        eval(currentForm + ".Kunde.options[i] = new Option('" + Kunde[i].Name + "')");
        eval(currentForm + ".Kunde.options[i].value = " + Kunde[i].ID);
    }
}

function PopulatePane(currentPane, paneToPopulate) {
    var selectedArray, i;
    var selected = currentPane.options[currentPane.selectedIndex].value
    if (selected == 0) {
        if (currentPane.selectedIndex != 0)
            selected = currentPane.options[--currentPane.selectedIndex].value;
        else {
            currentPane.selectedIndex = -1;
            return false;
        }
    }
           
    selectedArray = eval(paneToPopulate + selected);
    paneToPopulate = eval("currentPane.form." + paneToPopulate)

    for (i = currentPane.form.elements.length - 1; i > 0; i--) {
        paneToClear = paneToPopulate.form.elements[i]
        if (paneToClear == paneToPopulate) {
            break;
        }
        if (paneToClear.name == "Tema" || paneToClear.name == "Modul" || paneToClear.name == "Kunde") {
            for (i = paneToClear.options.length; i != 0; i--) {
                paneToClear.options[i - 1] = null;
            }
        }
    }
    while (selectedArray.length < paneToPopulate.options.length) {
        paneToPopulate.options[(paneToPopulate.options.length - 1)] = null;
    }
    for (i = 0; i < selectedArray.length; i++) {
        if ( selectedArray[i] == null || selectedArray[i] == "" ) {
            alert("There is no " + paneToPopulate.Name + " associated with this " + currentPane.Name);
        } else {
            eval("paneToPopulate.options[i] = new Option('" + selectedArray[i].Name + "')");
            eval("paneToPopulate.options[i].value = '" + selectedArray[i].ID + "'");
        }
    }
    if (document.welcome.Tema.options[0] == null) {
        document.welcome.Tema.options[0] = new Option("[Step 3]                            ");
        document.welcome.Tema.options[0].value = 0;
    }
}

function changePage(form) {

        if (form.Tema.selectedIndex != -1 || form.Modul.selectedIndex != -1 || form.Kunde.selectedIndex != -1) {
        PaneValues = form.Temaområde.options[form.Temaområde.selectedIndex].value.split("_");
        ModulValue = PaneValues[0] + "_" + PaneValues[1]
        DriverValue = ModulValue + "_" + PaneValues[2];
        whichArray = eval("Temaområde" + PaneValues[0] + "_" + PaneValues[1]);
        for (i = 0; i < whichArray.length; i++) {
            if (whichArray[i].ID == DriverValue) {
                form.action = "java script:document.location.href = '" + strURLPrefix + whichArray[i].URL + "';";
                break;
            }
        }
        return true;
    } else {
        alert("Du manlger at udføre en eller flere steps.");
        return false;
    }
}

function changeTextBlock(whichPane) {
    if (whichPane.selectedIndex == -1)
        return false;
   
    var newDescription;
    switch (whichPane.name) {
        case "Kunde" :
            newDescription = Kunde[whichPane.selectedIndex].DescriptionText;
            break;
        case "Modul" :
            newDescription = eval("Modul" + whichPane.form.Kunde.options[whichPane.form.Kunde.selectedIndex].value + "[" + whichPane.selectedIndex + "].DescriptionText");
            break;
        case "Tema" :
            newDescription = eval("Tema" + whichPane.form.Modul.options[whichPane.form.Modul.selectedIndex].value + "[" + whichPane.selectedIndex + "].DescriptionText");
            break;
    }
    if (NS4) {
        eval(layerRef + '["description"].document.open()');
        eval(layerRef + '["description"].document.write(newDescription)');       
        eval(layerRef + '["description"].document.close()');       
    } else if (NS6) {
        eval(layerRef + '("description").innerHTML=newDescription');
    } else {
        eval(layerRef + '["description"].innerHTML=newDescription');
    }
}


var bName = navigator.appName;
var bVer = parseInt(navigator.appVersion);
var NS4 = (bName == "Netscape" && bVer == 4);
var NS6 = (navigator.vendor == "Netscape6");
var IE4 = (bName == "Microsoft Internet Explorer" && bVer >= 4);
var Opera = (window.opera)

if (NS4) {
    layerRef="document.layers";
    styleSwitch="";
} else if (IE4) {
    layerRef="document.all";
    styleSwitch=".style";
} else if (NS6 || Opera) {
    layerRef="document.getElementById";
    styleSwitch=".style";
}
// -->
</script>
</head>

<body onLoad="InitializeKunde('document.welcome');">



</td>
<td valign="top">


<!-- intro content -->
<table cellpadding="0" cellspacing="10" width="580" border="0">
    <tr>
        <td class="text" valign="top" width="490"><b>Welcome til CIFMs System side</b>.<br><br>Nedenunder har du mulighed for at oprette, ændre eller slette i systemets data.
</td></tr>
</table>





<form onSubmit="return changePage(this);" ACTION="System.asp" target="Bund" name="welcome" method="get" enctype="text/plain">
    Vælg en kunde:
    <div style="font-family: arial; font-size: 11px; margin-bottom: 3px;">
        <select name="Kunde"
                size="15"
                onChange="PopulatePane(this, 'Modul'); changeTextBlock(this);"
                style="font-family: arial; font-size: 11px">
            <option value="0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select>
        <select name="Modul"
                size="15"
                onChange="PopulatePane(this, 'Tema'); changeTextBlock(this);"
                style="font-family: arial; font-size: 11px">
            <option value="0">[Step 2]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select>
        <select name="Tema"
                size="15"
                style="font-family: arial; font-size: 11px;"
                onChange=" if (this.form.Tema.options[this.form.Tema.selectedIndex].value == 0) { this.form.Tema.selectedIndex -= 1 }; ">
            <option value="0">[Step 3]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select>
    </div>
    <INPUT NAME="Submit" TYPE="submit" VALUE="Go!">
</FORM>

<DIV id="description"></DIV>

<script language="JavaScript" type="text/javascript">
<!--
document.welcome.Kunde.selectedIndex = -1;
document.welcome.Modul.selectedIndex = -1;
document.welcome.Tema.selectedIndex = -1;

//-->
</script>
Avatar billede roenving Novice
27. august 2003 - 15:54 #15
Umiddelbart virker det på mig som om der skulle stå Tema og ikke Temaområde i disse 4 linjer:

        PaneValues = form.Temaområde.options[form.Temaområde.selectedIndex].value.split("_");
        ModulValue = PaneValues[0] + "_" + PaneValues[1]
        DriverValue = ModulValue + "_" + PaneValues[2];
        whichArray = eval("Temaområde" + PaneValues[0] + "_" + PaneValues[1]);

-- for dine 3 selects hedder Kunde, Modul og Tema og du henviser til en select-box på formen ...
Avatar billede tblaster Nybegynder
27. august 2003 - 15:57 #16
Det har du jo ret i ... de må være smuttet i farten ... dette ændre blot fejlen til at være:
Object dosn't support this property or method

Go knappen virker stadig fint!
Avatar billede roenving Novice
27. august 2003 - 16:05 #17
Hvilken linje får du fejlen på ?-)
Avatar billede tblaster Nybegynder
27. august 2003 - 16:29 #18
Denne:
        PaneValues = form.Tema.options[form.Tema.selectedIndex].value.split("_");
Avatar billede roenving Novice
27. august 2003 - 16:37 #19
Så må vi jo prøve med noget debugging med alerts ...

I linjen lige før indsætter du i rækkefølge een ad gangen:

alert(form.name);  // skulle gerne svare 'welcome'
alert(form.Tema.selectedIndex); // skulle gerne svare med et tal
form.Tema.options; // skulle gerne svare [object]
form.Tema.options[0]; // skulle gerne svare [object]
form.Tema.options[0].value //skulle gerne svare med der PaneValues ...

Den skulle gerne svare noget intelligent hele vejen, men ellers må du fortælle hvad den gør og siger !-)
Avatar billede roenving Novice
27. august 2003 - 16:48 #20
-- og der skulle selvfølgelig være alerts omkring alle udgaverne ...
Avatar billede tblaster Nybegynder
28. august 2003 - 09:08 #21
Jeg er ikke helt med på hvad det er du vil have mig til men har prøvet med følgende:
alert(form.name);  // skulle gerne svare 'welcome'
alert(form.Tema.selectedIndex); // skulle gerne svare med et tal
alert(form.Tema.options); // skulle gerne svare [object]
alert(form.Tema.options[0]); // skulle gerne svare [object]
alert(form.Tema.options[0].value); //skulle gerne svare med der PaneValues

Hvis jeg indsætter overståedne får jeg alle de alerts jeg skal med de informationer den skal udsende, men kun når jeg vælger en under Kunde, Modul. Når jeg vælger data under Tema kommer der ikke nogen alerts.
Avatar billede tblaster Nybegynder
28. august 2003 - 09:09 #22
Har afsat nogle ekstra point til spørgsmålet!
Avatar billede roenving Novice
28. august 2003 - 10:24 #23
Okay, så er problemet blevet pinpointet:

Det, du har brug for er, at man ved et valg, i Tema submitter -- for det er det eneste sted den ikke kalder changeTextBlock-funktionen, ergo skal du:

<select name="Tema"
                size="15"
                style="font-family: arial; font-size: 11px;"
                onChange=" if (this.form.Tema.options[this.form.Tema.selectedIndex].value == 0) { this.form.Tema.selectedIndex -= 1 }; if(changePage(this.form))this.form.submit();">
            <option value="0">[Step 3]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select>
Avatar billede tblaster Nybegynder
28. august 2003 - 10:47 #24
Så får jeg også de der alerts når jeg trykker på en værdi i Tema.

Men jeg får stadig fejl. Når jeg tykker på en værdi i får jeg denne:
Object dosn't support this property or method.

Den meldder fejlen i denne:
PaneValues = form.Tema.options[form.Tema.selectedIndex].value.split("_");

Submitter jeg med min go knappe virker alt som det skal så man kan submitte ligemeget valget!
Avatar billede tblaster Nybegynder
28. august 2003 - 11:05 #25
Jeg skal have så når følgende gælder:
if (form.Kunde.selectedIndex != -1) {

Så skal jeg have defineret et temaområde. Det er ligemeget hvilket. Det skal bare være så den kan accepter denne linje:
PaneValues = form.Tema.options[form.Tema.selectedIndex].value.split("_");

Til alle moduler tilføjes dette temaområde:
Tema<%=rs("KundeID")%>_<%=rs("ModulID")%>[0] = new Entry("NY"," [Opret Ny]                                  ");

SÅ vil det ikke være muligt på en eller anden måde at lade den være selected hvis en anden ikke er valgt. Overstående er altid den øverste i rækken. Der hvor der står "NY" kan også angive en værdi hvis det er nemmere, for eksempel "0".
Avatar billede tblaster Nybegynder
01. september 2003 - 15:24 #26
Jeg har ændret lidt i koderne og har nu fået de første 2 felter til at virke. Men hvis man trykker på en værdi i felt 3 så sker der ikke noget. Jeg får denne fejl:
Tema5_undefined is undefined

Fejlen melder den i denne linje:
whichArray = eval("Tema" + PaneValues[0] + "_" + PaneValues[1]);

Her er koden:

function InitializeKunde(currentForm) {
    for (var i=0; i < Kunde.length; i++) {
        eval(currentForm + ".Kunde.options[i] = new Option('" + Kunde[i].Name + "')");
        eval(currentForm + ".Kunde.options[i].value = " + Kunde[i].ID);
    }
}

function PopulatePane(currentPane, paneToPopulate) {
    var selectedArray, i;
    var selected = currentPane.options[currentPane.selectedIndex].value
    if (selected == 0) {
        if (currentPane.selectedIndex != 0)
            selected = currentPane.options[--currentPane.selectedIndex].value;
        else {
            currentPane.selectedIndex = -1;
            return false;
        }
    }
           
    selectedArray = eval(paneToPopulate + selected);
    paneToPopulate = eval("currentPane.form." + paneToPopulate)

    for (i = currentPane.form.elements.length - 1; i > 0; i--) {
        paneToClear = paneToPopulate.form.elements[i]
        if (paneToClear == paneToPopulate) {
            break;
        }
        if (paneToClear.name == "Tema" || paneToClear.name == "Modul" || paneToClear.name == "Kunde") {
            for (i = paneToClear.options.length; i != 0; i--) {
                paneToClear.options[i - 1] = null;
            }
        }
    }
    while (selectedArray.length < paneToPopulate.options.length) {
        paneToPopulate.options[(paneToPopulate.options.length - 1)] = null;
    }
    for (i = 0; i < selectedArray.length; i++) {
        if ( selectedArray[i] == null || selectedArray[i] == "" ) {
            alert("There is no " + paneToPopulate.Name + " associated with this " + currentPane.Name);
        } else {
            eval("paneToPopulate.options[i] = new Option('" + selectedArray[i].Name + "')");
            eval("paneToPopulate.options[i].value = '" + selectedArray[i].ID + "'");
        }
    }
    if (document.welcome.Tema.options[0] == null) {
        document.welcome.Tema.options[0] = new Option("[Temaområde]                            ");
        document.welcome.Tema.options[0].value = 0;
    }
}

function changePage(form) {

        if (form.Tema.selectedIndex != -1 || form.Modul.selectedIndex != -1 || form.Kunde.selectedIndex != -1) {

        PaneValues = form.Tema.options[form.Tema.selectedIndex].value.split("_");
        ModulValue = PaneValues[0] + "_" + PaneValues[1]
        DriverValue = ModulValue + "_" + PaneValues[2];
        whichArray = eval("Tema" + PaneValues[0] + "_" + PaneValues[1]);
        for (i = 0; i < whichArray.length; i++) {
            if (whichArray[i].ID == DriverValue) {
                form.action = "java script:document.location.href = '" + strURLPrefix + whichArray[i].URL + "';";
                break;
            }
        }
        return true;
    } else {
        alert("Du manlger at vælge en kunde");
        return false;
    }
}

function changeTextBlock(whichPane) {
    if (whichPane.selectedIndex == -1)
        return false;
}


var bName = navigator.appName;
var bVer = parseInt(navigator.appVersion);
var NS4 = (bName == "Netscape" && bVer == 4);
var NS6 = (navigator.vendor == "Netscape6");
var IE4 = (bName == "Microsoft Internet Explorer" && bVer >= 4);
var Opera = (window.opera)

if (NS4) {
    layerRef="document.layers";
    styleSwitch="";
} else if (IE4) {
    layerRef="document.all";
    styleSwitch=".style";
} else if (NS6 || Opera) {
    layerRef="document.getElementById";
    styleSwitch=".style";
}
// -->
</script>
</head>

<body onLoad="InitializeKunde('document.welcome');">



</td>
<td valign="top">



<br><br>Nedenunder har du mulighed for at oprette, ændre eller slette i systemets data.


<form onSubmit="return changePage(this);" ACTION="System.asp" target="Bund" name="welcome" method="get" enctype="text/plain">
    Vælg en kunde:
    <div style="font-family: arial; font-size: 11px; margin-bottom: 3px;">
        <select name="Kunde"
                size="15"
                onChange="PopulatePane(this, 'Modul'); changeTextBlock(this); this.form.submit();"
                style="font-family: arial; font-size: 11px">
            <option value="0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select>
        <select name="Modul"
                size="15"
                onChange="PopulatePane(this, 'Tema'); changeTextBlock(this); this.form.submit();"
                style="font-family: arial; font-size: 11px">
            <option value="0">[Modul]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
        </select>
        <select name="Tema"
                        size="15"
                        style="font-family: arial; font-size: 11px;"
                        onChange=" if (this.form.Tema.options[this.form.Tema.selectedIndex].value == 0) { this.form.Tema.selectedIndex -= 1 }; if(changePage(this.form))this.form.submit();">
                  <option value="0">[Temaområde]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>
            </select>
    </div>
    <INPUT NAME="Submit" TYPE="submit" VALUE="Go!">
</FORM>
Avatar billede tblaster Nybegynder
01. september 2003 - 15:41 #27
Fik det endelig løst ... smid et svar roenving som tak for hjælpen!
Avatar billede roenving Novice
01. september 2003 - 18:20 #28
Velbekomme '-)
Avatar billede roenving Novice
02. september 2003 - 15:25 #29
-- og tak for points ;~}
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