Avatar billede mema Nybegynder
15. februar 2005 - 13:14 Der er 20 kommentarer og
1 løsning

Validering af indtastningerne i en formular

Jeg har et statistik-program som er lavet i FrontPage(2000) og Access(2002). Jeg har kun en formular plus nogle html-sider, hvor forskellige udtræk af data vha. Databas Resultater Wizard og nogle SQL-sætninger vises. Mit opgave og problem er at finde en kode som kan forebygge fejl-indtastninger.

Jeg kender ikke noget til ASP og kun lidt til JavaScript og SQL.

I formularen har jeg 10 felter:
Felt 1: Dato (dags-dato indsættes automatisk i Tekst-feltet)
Felt 2: 2 radio-knapper
Felt 3: Rulleliste
.....
Felterne 3 - 10 er alle rullelister.

Ved udfyldning af formularen:

- Hvis man vælger det første radio-knap:
Så skal man vælge de felter INDTIL (inklusive) felt-nr.5 OG skal man IKKE kunne vælge flere felter.

- Hvis man vælger det andet radio-knap:
Skal man i hvert fald vælge et punkt i relleliste nr.6 (Default værdi for alle rullelister er: Vælg - Dvs. når man ikke vælger noget, så vælger man "Vælg" med tal værdien: 99 i databasen)

- Hvis der vælges det første menupunkt i rulleliste nr.6 (består af "Vælg" og 3 valgmuligheder) - det første valgmulighed under Vælg - skal man ikke kunne vælge flere felter og skal kun kunne trykke på submit-knap.

- Hvis der vælges det andet eller det tredje menupunkt i rulleliste nr.6, skal man også vælge en af valgmulihederne i rulleliste-nr.7.

Hvis der vælges det første valgmulighed i rulleliste-nr.7, skal man kun vælge en af de valgmulighederne i felt-nr.8. Hvis der vælges det andet valgmulighed i rulleliste-nr.7, skal man kun vælge en af de valgmulighederne i felt-nr.9 og Hvis der vælges det tredje valgmulighed i rulleliste-nr.7, skal man kun vælge en af de valgmulighederne i felt-nr.10. Ved valg af 4. valgmulighed i rulleliste-nr.7, skal man ikke kunne vælge flere felter og skulle der kun være muligt at trykke på submit-knappen.

Jeg håber meget at have kunnet at forklare mit problem tydeligt nok. Det var lidt svært for mig. Jeg går ud fra at et eller andet JavaScript kan evtl. være en løsning. Derfor sender jeg dette spørgsmål til Jer og håber meget på svar.
Avatar billede roenving Novice
15. februar 2005 - 17:11 #1
Lyder næsten som om du skal over under opgaver, for selvom det ikke er vildt kompliceret, er det en slaveopgave, hvis du ikke selv kan færdiggøre det efter at have fået principperne og nogle eksempler !-)
Avatar billede mema Nybegynder
15. februar 2005 - 21:53 #2
Måske har du ret. Ellers virker hjemmeside fint. Jeg har også lavet følgende JavaScript kode for validering af de første 5 felter, men jeg kan ikke finde ud af hvordan man laver validering som har nogle betingelser. Dvs. hvis man vælger i rulleliste nr.6 noget så skal man også vælge en af de valgmulighederne i rulleliste nr.7 ellers få man et promt-vindue hvor der står et eller andet. Koden for validering af første 5 felter er:

<script language="JavaScript">
<!--
function formCheck(formobj){
// Enter name of mandatory fields
var fieldRequired = Array("Reg_tid", "Type_ID", "Henvender_ID", "Henvendelsesform_ID", "Institution_ID");
// Enter field description to appear in the dialog box
var fieldDescription = Array("Registreringsdato", "Registreringen gælder", "Henvender", "Henvendelsesform", "Institution");
// dialog message
    var alertMsg = "Udfyld venligst følgende felter:\n";
    var l_Msg = alertMsg.length;
    for (var i = 0; i < fieldRequired.length; i++){
    var obj = formobj.elements[fieldRequired[i]];
        if (obj){
            switch(obj.type){
            case "select-one":
    if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "Vælg" || obj.options[obj.selectedIndex].text == ""){alertMsg += " - " + fieldDescription[i] + "\n";
}
        break;
        default:
}
    if (obj.type == undefined){
        var blnchecked = false;
            for (var j = 0; j < obj.length; j++){
        if (obj[j].checked){
            blnchecked = true;
}
}
if (!blnchecked){
    alertMsg += " - " + fieldDescription[i] + "\n";
        }
    }
}}
if (alertMsg.length == l_Msg){return true;
}else{alert(alertMsg);
return false;
}
}
// -->
</script>
------------
Og i <form> har jeg indsat:
<form ... onsubmit="return formCheck(this);">
Avatar billede roenving Novice
16. februar 2005 - 13:39 #3
-- egentlig tror jeg, at jeg ville lave det sådan, at man faktisk ikke kunne se de kontroller, man ikke skulle udfylde !-)

Eksempel:

<input type="radio" value="1" name="minRadio" onclick="document.getElementById('blok1').style.display='block';document.getElementById('blok2').style.display='none';"><br>
<input type="radio" value="2" name="minRadio" onclick="document.getElementById('blok2').style.display='block';document.getElementById('blok1').style.display='none';"><br>

-- og så blok1 således:

<div id="blok1" style="display:none;">
<select ...

-- dine selects til og med felt 5
</div>

<div id="blok2" style="display:none;">

<select name="valgSelect" onchange="if(this.selectedIndex<2){document.getElementById('blok3').display='none'}else{document.getElementById('blok3').display='block'}">
  <option value="99">Vælg</option>

-- osv.

</select>

  <div id="blok3" style="display:none;">
  <select name="sel7" onchange="show(this)">
    <option value="99">Vælg</option>

  -- osv.

  </select>
  <select name="sel8" style="display:none;">
    <option value="99">Vælg</option>

  -- osv.

  </select>

  -- select 8 og 9 ligedan

  </div><!-- slut blok3 -->
</div><!-- slut blok2 -->

-- og et lille script til at vise de sidste efter behov:

<script type="text/javascript">
function show(sel){
  for(i=8;i<=10;i++)
    sel.form.elements['sel'+i].style.display='none';
  sel.form.elements['sel'+(7+sel.selectedIndex)].style.display='inline';
}
</script>

-- håber du kan lave det færdigt derfra !-)
Avatar billede roenving Novice
16. februar 2005 - 13:41 #4
-- og valgselecten kunne laves lidt nemmere at skrive:

<select name="valgSelect" onchange="document.getElementById('blok3').display=(this.selectedIndex<2)?'none':'block'">
Avatar billede mema Nybegynder
16. februar 2005 - 17:02 #5
Mange tak for svaret. Det virker næsten.. Men der er 3 ting:
1- Jeg har ændret lidt på radio-knap nr. 2 fordi jeg ville at ved valg af radioknap-2 vises der også "block 1".
2- Der vises ikke flere felter når jeg trykker på radioknap-2 og vælger underste rulleliste punkter i valgSelect-rullelisten (nr. 6). Som skrevet har jeg meget lidt viden om JavaScript, Men jeg går ud fra at ved rullelister den overste har den index=0 osv. Derfor kan jeg ikke forstår hvorfor i den lille JavaScript kode som jeg har sat i <HEAD> - sektionen skulle der begyndes med ...for(i=8;i<=10;i++).. og hvorfor ikke i=6.
3- Koden forudsætter at felterne fra 7-10 begynder med navnet "sel". Men jeg har noget andet navn i databasen. Betyder det at jeg skal lave om på databasen og derfor også lave om på formatteringer som jeg har lavet på asp-sider som viser database-resultater? Eller kan man alligevel beholde de oprindelige felt-navne.

Jeg ved at jeg forventer for meget men.... gider du at kigge på nedstående kode også der er lavet i FrontPage efter din kode og hjælper mig videre :-?

<html><head>
<title>Statistik</title>

<script type="text/javascript">
function show(sel){
  for(i=8;i<=10;i++)
    sel.form.elements['sel'+i].style.display='none';
  sel.form.elements['sel'+(7+sel.selectedIndex)].style.display='inline';
}
</script>
</head>
<body>
<form method="POST" name="statistic" action="--WEBBOT-SELF--">
  <!--webbot bot="SaveResults" U-File="_private/form_results.txt"
  S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
  <p>Registreringstid: <input type="text" name="Reg_tid" size="20"></p>
  <p>Type:&nbsp;<br>
  Bestilling: <input type="radio" value="1" name="Type_ID" onclick="document.getElementById('blok1').style.display='block';document.getElementById('blok2').style.display='none';">
  Information: <input type="radio" value="2" name="Type_ID" onclick="document.getElementById('blok2').style.display='block';document.getElementById('blok1').style.display='block';"></p>
  <div id="blok1" style="display:none;">
  <p>Felt 3: <select size="1" name="Hen_ID">
    <option value="99">Vælg</option>
    <option value="1">Første3</option>
    <option value="2">Andet3</option>
  </select></p>
  <p>Felt 4: <select size="1" name="Henform_ID">
    <option value="99">Vælg</option>
    <option value="1">Første4</option>
    <option value="2">Andet4</option>
  </select></p>
  <p>Felt 5: <select size="1" name="Inst_ID">
    <option value="99">Vælg</option>
    <option value="1">Første5</option>
    <option value="2">Andet5</option>
  </select></p>
  </div>
  <!-- slut blok1 -->
 
  <div id="blok2" style="display:none;">
  <p>Felt 6= valgSelect: <select name="valgSelect" onchange="document.getElementById('blok3').display=(this.selectedIndex<2)?'none':'block'" size="1">
      <option value="99">Vælg</option>
    <option value="1">Første6</option>
    <option value="2">Andet6</option>
    <option value="3">Tredje6</option>
  </select></p>
 
  <div id="blok3" style="display:none;">
  <p>Felt 7: <select name="sel7" onchange="show(this)" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første7</option>
    <option value="2">Andet7</option>
  </select></p>
  <p>Felt 8: <select name="sel8" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første8</option>
    <option value="2">Andet8</option>
  </select></p>
  <p>Felt 9: <select name="sel9" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første9</option>
    <option value="2">Andet9</option>
  </select></p>
  <p>Felt 10: <select name="sel10" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første10</option>
    <option value="2">Andet10</option>
  </select></p>
  </div><!-- slut blok3 -->
</div><!-- slut blok2 -->

<p><input type="submit" value="Send" name="B1"></p>
</form>

<script language="JavaScript">
var mydate=new Date()
var theyear=mydate.getYear()
if (theyear < 1000)
theyear+=1900
var theday=mydate.getDay()
var themonth=mydate.getMonth()+1
if (themonth<10)
themonth="0"+themonth
var theday=mydate.getDate()
if (theday<10)
theday="0"+theday

/////EDIT below three variable to customize the format of the date/////

var displayfirst=theyear
var displaysecond=themonth
var displaythird=theday
/////
document.statistic.Reg_tid.value=displayfirst+"-"+displaysecond+"-"+displaythird
</script>
</body></html>
Avatar billede roenving Novice
16. februar 2005 - 17:15 #6
-- Argh, der manglede en style i linjen:

  <p>Felt 6= valgSelect: <select name="valgSelect" onchange="document.getElementById('blok3').style.display=(this.selectedIndex<2)?'none':'block'" size="1">

-- og er der ikke en option for lidt i felt 7 ?-)

-- det nemmeste vil være at lave en oversættelse i dit server-side sprog, for ellers skal vi tilføje noget med et array, som der slås op i i javascriptet !-)
Avatar billede mema Nybegynder
16. februar 2005 - 21:12 #7
Det virker nu. Bortset fra omdøbbelse af feltnavne. Jeg er blank når du fortæller om "...lave en oversættelse i dit server-side sprog" eller "...tilføje noget med et array, som der slås op i i javascriptet". Bliver meget glad at høre fra dig igen.

Iøvrigt jeg har også tilføjet 2 options i felt 7. Jeg har glemt at sige, at felt 7 skulle faktisk have en firer option, og ved valg af det, skulle man kun kunne klikke på submit og felt 8, 9 og 10 blive usynlige. Jeg har tilføjet det og det virker bare på den måde som det skulle være! fint. :-)
Avatar billede mema Nybegynder
16. februar 2005 - 21:16 #8
Jeg har glemt at skrive, at felt 7 ser nu sådan ud:

<div id="blok3" style="display:none;">
  <p>Felt 7: <select name="sel7" onchange="show(this)" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første7</option>
    <option value="2">Andet7</option>
    <option value="3">Tredje7</option>
    <option value="4">Firer7</option>
  </select></p>
  <p>Felt 8: <select .....
Avatar billede roenving Novice
16. februar 2005 - 23:41 #9
Uden at jeg har set det andet end som input her:

<script type="text/javascript">
var blok3sels = ['storrelse','bredde','tykkelse'];
function show(sel){
  for(i=0;i<=blok3sels.length;i++)
    sel.form.elements[blok3sels[i]].style.display='none';
  sel.form.elements[blok3sels[sel.selectedIndex]].style.display='inline';
}
</script>
Avatar billede mema Nybegynder
17. februar 2005 - 01:53 #10
Uden at have forstået helt hvad der menes med storrelse, brede og tykkelse kan jeg sige, at:
Felt 6 navn (i databasen+formular) består af 13 bogstaver OG har 3 punkter(ekskl. Vælg)
Felt 7 navn (i databasen+formular) består af 12 bogstaver OG har 4 punkter(ekskl. Vælg)
Felt 8 navn (i databasen+formular) består af 13 bogstaver OG har 8 punkter(ekskl. Vælg)
Felt 9 navn (i databasen+formular) består af 13 bogstaver OG har 5 punkter(ekskl. Vælg)
Felt 10 navn (i databasen+formular) består af 13 bogstaver OG har 5 punkter(ekskl. Vælg)

Iøvrigt jeg får fejlmeddelelse ved valg af firer punkt i felt7
...<option value="4">Firer7</option>...
fejl: 'form.elements[....].style' er null eller ikke et objekt.
Avatar billede roenving Novice
17. februar 2005 - 11:54 #11
Det er fordi, der ikke er et felt 11, som relaterer til den 4. valmulighed ...

-- storrelse, bredde og tykkelse er eksempler på feltnavne !-)
Avatar billede mema Nybegynder
17. februar 2005 - 15:40 #12
Hej igen,
Jeg skal sige tak for hjælpen. Desværre har min viden om JavaScript ikke har været god nok til at bringe det her til at virke, men jeg har jo lært alligevel noget. Send venligst et svar, så jeg kan "Acceptere".
Ellers min sidste anstrængelser ser såden ud og jeg får stadigvæk det samme fejlmeddelelse:

<html><head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Statistik</title>

<script type="text/javascript">
var blok3sels = ['sel8','sel9','sel10','sel11'];
function show(sel){
  for(i=0;i<=blok3sels.length;i++)
    sel.form.elements[blok3sels[i]].style.display='none';
  sel.form.elements[blok3sels[sel.selectedIndex]].style.display='inline';
}
</script>

</head>

<body>

<script language="JavaScript">
<!--
function formCheck(formobj){
    // Enter name of mandatory fields
    var fieldRequired = Array("Hen_ID", "Henform_ID", "Inst_ID");
    // Enter field description to appear in the dialog box
    var fieldDescription = Array("Henvender", "Henvendelsesform", "Institution");
    // dialog message
    var alertMsg = "Udfyld venligst følgende felter:\n";
    var l_Msg = alertMsg.length;
    for (var i = 0; i < fieldRequired.length; i++){
        var obj = formobj.elements[fieldRequired[i]];
        if (obj){
            switch(obj.type){
            case "select-one":
                if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "Vælg"){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;
           
            default:
            }
            if (obj.type == undefined){
                var blnchecked = false;
                for (var j = 0; j < obj.length; j++){
                    if (obj[j].checked){
                        blnchecked = true;
                    }
                }
                if (!blnchecked){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
            }
        }
    }

    if (alertMsg.length == l_Msg){
        return true;
    }else{
        alert(alertMsg);
        return false;
    }
}
// -->
</script>


<form method="POST" name="statistic" action="--WEBBOT-SELF--" onsubmit="return formCheck(this);">
  <!--webbot bot="SaveResults" startspan U-File="_private/form_results.txt"
  S-Format="TEXT/CSV" S-Label-Fields="TRUE" --><input TYPE="hidden" NAME="VTI-GROUP" VALUE="0"><!--webbot
  bot="SaveResults" endspan -->
  <p>Registreringstid: <input type="text" name="Reg_tid" size="20"></p>
  <p>
  Type:&nbsp;<br>
  Bestilling: <input type="radio" value="1" name="Type_ID" onclick="document.getElementById('blok1').style.display='block';document.getElementById('blok2').style.display='none';">
  Information: <input type="radio" value="2" name="Type_ID" onclick="document.getElementById('blok2').style.display='block';document.getElementById('blok1').style.display='block';"></p>
  <div id="blok1" style="display:none;">
  <p>Felt 3: <select size="1" name="Hen_ID">
    <option value="99">Vælg</option>
    <option value="1">Første3</option>
    <option value="2">Andet3</option>
  </select></p>
  <p>Felt 4: <select size="1" name="Henform_ID">
    <option value="99">Vælg</option>
    <option value="1">Første4</option>
    <option value="2">Andet4</option>
  </select></p>
  <p>Felt 5: <select size="1" name="Inst_ID">
    <option value="99">Vælg</option>
    <option value="1">Første5</option>
    <option value="2">Andet5</option>
  </select></p>
  </div>
  <!-- slut blok1 -->
 
  <div id="blok2" style="display:none;">
  <p>Felt 6= valgSelect: <select name="svarSelect" onchange="document.getElementById('blok3').style.display=(this.selectedIndex<2)?'none':'block'" size="1">
      <option value="99">Vælg</option>
    <option value="1">Første6</option>
    <option value="2">Andet6</option>
    <option value="3">Tredje6</option>
  </select></p>
 
  <div id="blok3" style="display:none;">
  <p>Felt 7: <select name="sel7" onchange="show(this)" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første7</option>
    <option value="2">Andet7</option>
    <option value="3">Tredje7</option>
    <option value="4">Firer7</option>
  </select></p>
  <p>Felt 8: <select name="sel8" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første8</option>
    <option value="2">Andet8</option>
  </select></p>
  <p>Felt 9: <select name="sel9" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første9</option>
    <option value="2">Andet9</option>
  </select></p>
<p>Felt 10: <select name="sel10" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første10</option>
    <option value="2">Andet10</option>
  </select></p>
  <p>Felt 11: <select name="sel11" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første11</option>
    <option value="2">Andet11</option>
  </select></p>

 
  </div><!-- slut blok3 -->
</div><!-- slut blok2 -->

 
  <p><input type="submit" value="Send" name="B1"></p>
</form>

<script language="JavaScript">
var mydate=new Date()
var theyear=mydate.getYear()
if (theyear < 1000)
theyear+=1900
var theday=mydate.getDay()
var themonth=mydate.getMonth()+1
if (themonth<10)
themonth="0"+themonth
var theday=mydate.getDate()
if (theday<10)
theday="0"+theday

/////EDIT below three variable to customize the format of the date/////

var displayfirst=theyear
var displaysecond=themonth
var displaythird=theday
/////
document.statistic.Reg_tid.value=displayfirst+"-"+displaysecond+"-"+displaythird
</script>

</body>

</html>
Avatar billede roenving Novice
17. februar 2005 - 15:46 #13
Argh, jeg havde ikke fået fjernet et lighedstegn, og heller ikke konsekvensrettet referencen, så sådan:

<script type="text/javascript">
var blok3sels = ['sel8','sel9','sel10','sel11'];
function show(sel){
  for(i=0;i<blok3sels.length;i++)
    sel.form.elements[blok3sels[i]].style.display='none';
  sel.form.elements[blok3sels[sel.selectedIndex-1]].style.display='inline';
}
</script>
Avatar billede mema Nybegynder
17. februar 2005 - 16:57 #14
Tusind tak. Det virker nu, og jeg er meget glad og taknemligt:-))
Send venligst et "Svar"
Avatar billede mema Nybegynder
17. februar 2005 - 20:47 #15
Hvis man bare kunne fjerne dette grimme fejl-ikon fra processlinie ved valg af den firer punkt i option-4 af <select name="sel7"....>. Grunden er at jeg kan ikke have et selstændig felt (det 11. felt) fordi der findes heller ikke noget selvstændig tabel for dette felt såsom der findes for andre felter. Hvordan kan man så bevare muligheden at vælge option-4 i felt 7 men ikke få noget fejl-ikon?

Min kode:
<html><head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Statistik</title>

<script type="text/javascript">
var blok3sels = ['sel8','sel9','sel10'];
function show(sel){
  for(i=0;i<blok3sels.length;i++)
    sel.form.elements[blok3sels[i]].style.display='none';
  sel.form.elements[blok3sels[sel.selectedIndex-1]].style.display='inline';
}
</script>
</head>
<body>

<script language="JavaScript">
<!--
function formCheck(formobj){
    // Enter name of mandatory fields
    var fieldRequired = Array("Hen_ID", "Henform_ID", "Inst_ID");
    // Enter field description to appear in the dialog box
    var fieldDescription = Array("Henvender", "Henvendelsesform", "Institution");
    // dialog message
    var alertMsg = "Udfyld venligst følgende felter:\n";
   
    var l_Msg = alertMsg.length;
   
    for (var i = 0; i < fieldRequired.length; i++){
        var obj = formobj.elements[fieldRequired[i]];
        if (obj){
            switch(obj.type){
            case "select-one":
                if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "Vælg"){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
                break;
           
            default:
            }
            if (obj.type == undefined){
                var blnchecked = false;
                for (var j = 0; j < obj.length; j++){
                    if (obj[j].checked){
                        blnchecked = true;
                    }
                }
                if (!blnchecked){
                    alertMsg += " - " + fieldDescription[i] + "\n";
                }
            }
        }
    }

    if (alertMsg.length == l_Msg){
        return true;
    }else{
        alert(alertMsg);
        return false;
    }
}
// -->
</script>

<form method="POST" name="statistic" action="--WEBBOT-SELF--" onsubmit="return formCheck(this);">
  <!--webbot bot="SaveResults" startspan U-File="_private/form_results.txt"
  S-Format="TEXT/CSV" S-Label-Fields="TRUE" --><input TYPE="hidden" NAME="VTI-GROUP" VALUE="0"><!--webbot
  bot="SaveResults" endspan -->
  <p>Registreringstid: <input type="text" name="Reg_tid" size="20"></p>
  <p>
  Type:&nbsp;<br>
  Bestilling: <input type="radio" value="1" name="Type_ID" onclick="document.getElementById('blok1').style.display='block';document.getElementById('blok2').style.display='none';">
  Information: <input type="radio" value="2" name="Type_ID" onclick="document.getElementById('blok2').style.display='block';document.getElementById('blok1').style.display='block';"></p>
  <div id="blok1" style="display:none;">
  <p>Felt 3: <select size="1" name="Hen_ID">
    <option value="99">Vælg</option>
    <option value="1">Første3</option>
    <option value="2">Andet3</option>
  </select></p>
  <p>Felt 4: <select size="1" name="Henform_ID">
    <option value="99">Vælg</option>
    <option value="1">Første4</option>
    <option value="2">Andet4</option>
  </select></p>
  <p>Felt 5: <select size="1" name="Inst_ID">
    <option value="99">Vælg</option>
    <option value="1">Første5</option>
    <option value="2">Andet5</option>
  </select></p>
  </div>
  <!-- slut blok1 -->
 
  <div id="blok2" style="display:none;">
  <p>Felt 6= valgSelect: <select name="svarSelect" onchange="document.getElementById('blok3').style.display=(this.selectedIndex<2)?'none':'block'" size="1">
      <option value="99">Vælg</option>
    <option value="1">Første6</option>
    <option value="2">Andet6</option>
    <option value="3">Tredje6</option>
  </select></p>
 
  <div id="blok3" style="display:none;">
  <p>Felt 7: <select name="sel7" onchange="show(this)" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første7</option>
    <option value="2">Andet7</option>
    <option value="3">Tredje7</option>
    <option value="4">Firer7</option>
  </select></p>
  <p>Felt 8: <select name="sel8" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første8</option>
    <option value="2">Andet8</option>
  </select></p>
  <p>Felt 9: <select name="sel9" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første9</option>
    <option value="2">Andet9</option>
  </select></p>
<p>Felt 10: <select name="sel10" style="display:none;" size="1">
    <option value="99">Vælg</option>
    <option value="1">Første10</option>
    <option value="2">Andet10</option>
  </select></p>
 
  </div><!-- slut blok3 -->
</div><!-- slut blok2 -->
  <p><input type="submit" value="Send" name="B1"></p>
</form>

<script language="JavaScript">
var mydate=new Date()
var theyear=mydate.getYear()
if (theyear < 1000)
theyear+=1900
var theday=mydate.getDay()
var themonth=mydate.getMonth()+1
if (themonth<10)
themonth="0"+themonth
var theday=mydate.getDate()
if (theday<10)
theday="0"+theday

/////EDIT below three variable to customize the format of the date/////

var displayfirst=theyear
var displaysecond=themonth
var displaythird=theday
/////
document.statistic.Reg_tid.value=displayfirst+"-"+displaysecond+"-"+displaythird
</script>
</body>
</html>
Avatar billede mema Nybegynder
18. februar 2005 - 12:04 #16
Hej igen,
Det ser ud som om følgende koder virker:

<script type="text/javascript">
var blok3sels = ['Felt8','Felt9','Felt10','Felt11'];
function show(sel){
    if (!(blok3sels > 2)){
  for(i=0;i<blok3sels.length;i++)
    sel.form.elements[blok3sels[i]].style.display='none';
  sel.form.elements[blok3sels[sel.selectedIndex-1]].style.display='inline';
  }
  sel.form.elements[blok3sels[3]].style.display='none';
}
</script>

-- Felt 11 er bare fiktive og jeg har indsat det sådan:
...
<p><select name="Felt11" style="display:none;" size="1">
    </select></p>
...
_________________

Hvad mener du så om denne kode/ændring af din kode?
Avatar billede roenving Novice
18. februar 2005 - 12:23 #17
Hvorfor have en firer med, når der ikke er noget tilsvarende felt ?-)
Avatar billede mema Nybegynder
18. februar 2005 - 13:55 #18
I felt 7 i formularen har jeg 4 otions plus "Vælg". Disse 4 options sender data til en hovedtabel hvor der findes et felt for forskellige valgte værdier for felt 7. De første 3 options har også deres egen tabel(hvilke betyder, at der skulle være muligt at vælge forskellige værdier/options i deres felt - felt 8, 9 og 10), hvor deres primære nøgle relateres til den tilsvarende i hovedtabellen. Men option 4 i felt 7 har ikke sin egen tabel og heller ikke nogen options. Derfor skal option 4 være muligt at vælge (i felt 7) uden at have nogen rulleliste i formularen. Jeg håber at forklaringen giver mening.
Ellers tak en gang til. Jeg venter på et "Svar":-))
Avatar billede roenving Novice
18. februar 2005 - 14:06 #19
Så ville jeg gøre sådan:

<script type="text/javascript">
var blok3sels = ['sel8','sel9','sel10'];
function show(sel){
  for(i=0;i<3;i++)
    sel.form.elements[blok3sels[i]].style.display='none';
  if(sel.selectedIndex<4)
    sel.form.elements[blok3sels[sel.selectedIndex-1]].style.display='inline';
}
</script>

-- og velbekomme '-)
Avatar billede roenving Novice
18. februar 2005 - 14:11 #20
Tak for point ;~}
Avatar billede mema Nybegynder
18. februar 2005 - 14:22 #21
Det har du jo allerede længst fortjent allerede med din første relevante svar(:-))
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