Avatar billede superrex Nybegynder
26. oktober 2004 - 09:03 Der er 15 kommentarer og
1 løsning

Man må ikke vælge fremtid (form check)

Hejsa

Jeg har denne form hvor fra man kan vælge en dato. Jeg vil gerne sikre mig at folk ikke vælge en dato ude i fremtiden.

Hvordan gør man det?


<form action="1.PHP" method="get" onsubmit="validering();return false;">
<select name="DOBday" class="input">
        <option value="0" selected>Dag</option>
        <option value="01" >01</option>
        <option value="02" >02</option>
        <option value="03" >03</option>
        <option value="04" >04</option>
        <option value="05" >05</option>
        <option value="06" >06</option>
        <option value="07" >07</option>
        <option value="08" >08</option>
        <option value="09" >09</option>
        <option value="10" >10</option>
        <option value="11" >11</option>
        <option value="12" >12</option>
        <option value="13" >13</option>
        <option value="14" >14</option>
        <option value="15" >15</option>
        <option value="16" >16</option>
        <option value="17" >17</option>
        <option value="18" >18</option>
        <option value="19" >19</option>
        <option value="20" >20</option>
        <option value="21" >21</option>
        <option value="22" >22</option>
        <option value="23" >23</option>
        <option value="24" >24</option>
        <option value="25" >25</option>
        <option value="26" >26</option>
        <option value="27" >27</option>
        <option value="28" >28</option>
        <option value="29" >29</option>
        <option value="30" >30</option>
        <option value="31" >31</option>
      </select>
<select name="DOBmonth" class="input">
  <option value="0" selected>Måned</option>
  <option value="01" >01</option>
  <option value="02" >02</option>
  <option value="03" >03</option>
  <option value="04" >04</option>
  <option value="05" >05</option>
  <option value="06" >06</option>
  <option value="07" >07</option>
  <option value="08" >08</option>
  <option value="09" >09</option>
  <option value="10" >10</option>
  <option value="11" >11</option>
  <option value="12" >12</option>
</select>
<select name="DOByear" class="input">
  <option value="0" selected>År</option>
  <option value="2000" >2000</option>
  <option value="2001" >2001</option>
  <option value="2002" >2002</option> 
  <option value="2003" >2003</option>
  <option value="2004" >2004</option>
  <option value="2005" >2005</option>
  <option value="2006" >2006</option>
  <option value="2007" >2007</option>
  <option value="2008" >2008</option>
  <option value="2009" >2009</option>
  <option value="2010" >2010</option>
</select>

</form>
Avatar billede flim Nybegynder
26. oktober 2004 - 09:05 #1
Er det ikke nemmere at lave i php?

Der kan du lave så du kun får vist det antal dage der er i den pågældende måned, og evt bruge checkdate() til at checke om datoen rent faktisk eksisterer...
Avatar billede flim Nybegynder
26. oktober 2004 - 09:06 #2
Nej - glem det.

Jeg misforstod dit spørgsmål :)
Avatar billede superrex Nybegynder
26. oktober 2004 - 09:07 #3
Ok.. men jeg vil gerne checke det inden formen bliver submitet, det kan man vel ikke i php?
Avatar billede flim Nybegynder
26. oktober 2004 - 09:09 #4
Du kan jo sende den dato brugeren har valgt til en side (lad os kalde den check.php)

Hvis datoen er korrekt så udfører du noget mere kode, og ellers smider du brugeren tilbage og så må han vælge en ny
Avatar billede superrex Nybegynder
26. oktober 2004 - 09:17 #5
@flim
Ja det har jeg tænkt på men det er det som jeg vil undgå
Avatar billede flim Nybegynder
26. oktober 2004 - 09:19 #6
Ok ok - så må du nok igang med Javascript, og der kan jeg ikke rigtig hjælpe dig, men held og lykke
Avatar billede superrex Nybegynder
26. oktober 2004 - 09:30 #7
mange tak
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 09:36 #8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <script type="text/javascript">
    function y2k(number) { return (number < 1000) ? number + 1900 : number; }
    function isDate (day,month,year) {
    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (y2k(test.getYear()) == year) &&
        (month == test.getMonth()) &&
        (day == test.getDate()) )
        return true;
    else
        return false
}

function validering(formobj){
    if(formobj.DOBday.selectedIndex>0 && formobj.DOBmonth.selectedIndex>0 && formobj.DOByear.selectedIndex>0){
        return isDate(formobj.DOBday.options[formobj.DOBday.selectedIndex].value,formobj.DOBmonth.options[formobj.DOBmonth.selectedIndex].value,formobj.DOByear.options[formobj.DOByear.selectedIndex].value)
    }else{
        alert('du skal vælge dag, måned og år');
        return false;
    }
}
    </script>
</head>

<body>
<form name="test" action="1.PHP" method="get" onsubmit="return validering(document.forms['test']);">
<select name="DOBday" class="input">
        <option value="0" selected>Dag</option>
        <option value="01" >01</option>
        <option value="02" >02</option>
        <option value="03" >03</option>
        <option value="04" >04</option>
        <option value="05" >05</option>
        <option value="06" >06</option>
        <option value="07" >07</option>
        <option value="08" >08</option>
        <option value="09" >09</option>
        <option value="10" >10</option>
        <option value="11" >11</option>
        <option value="12" >12</option>
        <option value="13" >13</option>
        <option value="14" >14</option>
        <option value="15" >15</option>
        <option value="16" >16</option>
        <option value="17" >17</option>
        <option value="18" >18</option>
        <option value="19" >19</option>
        <option value="20" >20</option>
        <option value="21" >21</option>
        <option value="22" >22</option>
        <option value="23" >23</option>
        <option value="24" >24</option>
        <option value="25" >25</option>
        <option value="26" >26</option>
        <option value="27" >27</option>
        <option value="28" >28</option>
        <option value="29" >29</option>
        <option value="30" >30</option>
        <option value="31" >31</option>
      </select>
<select name="DOBmonth" class="input">
  <option value="0" selected>Måned</option>
  <option value="01" >01</option>
  <option value="02" >02</option>
  <option value="03" >03</option>
  <option value="04" >04</option>
  <option value="05" >05</option>
  <option value="06" >06</option>
  <option value="07" >07</option>
  <option value="08" >08</option>
  <option value="09" >09</option>
  <option value="10" >10</option>
  <option value="11" >11</option>
  <option value="12" >12</option>
</select>
<select name="DOByear" class="input">
  <option value="0" selected>År</option>
  <option value="2000" >2000</option>
  <option value="2001" >2001</option>
  <option value="2002" >2002</option> 
  <option value="2003" >2003</option>
  <option value="2004" >2004</option>
  <option value="2005" >2005</option>
  <option value="2006" >2006</option>
  <option value="2007" >2007</option>
  <option value="2008" >2008</option>
  <option value="2009" >2009</option>
  <option value="2010" >2010</option>
</select>
<input type="submit" value="testdato">
</form>

</body>
</html>
Avatar billede superrex Nybegynder
26. oktober 2004 - 09:47 #9
Det virker ikke... den acceptere dato'er ude i fremtiden
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 09:48 #10
doh, det havde jeg lige glemt :-)
Avatar billede superrex Nybegynder
26. oktober 2004 - 09:53 #11
sådan kan det gå
Avatar billede -mundi- Nybegynder
26. oktober 2004 - 10:10 #12
Prøver lige igen så

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <script type="text/javascript">
    function y2k(number) { return (number < 1000) ? number + 1900 : number; }
    function isDate (day,month,year) {
    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (y2k(test.getYear()) == year) &&
        (month == test.getMonth()) &&
        (day == test.getDate()) )
        return true;
    else
        return false
}

function validering(formobj){
    if(formobj.DOBday.selectedIndex>0 && formobj.DOBmonth.selectedIndex>0 && formobj.DOByear.selectedIndex>0){
      if(isDate(formobj.DOBday.options[formobj.DOBday.selectedIndex].value,formobj.DOBmonth.options[formobj.DOBmonth.selectedIndex].value,formobj.DOByear.options[formobj.DOByear.selectedIndex].value)){
          var selectedDate = new Date(parseInt(formobj.DOByear.options[formobj.DOByear.selectedIndex].value),parseInt(formobj.DOBmonth.options[formobj.DOBmonth.selectedIndex].value)-1,parseInt(formobj.DOBday.options[formobj.DOBday.selectedIndex].value));
        var now = new Date();
        var today = new Date(now.getYear(),now.getMonth(),now.getDate());
       
        alert(selectedDate);
        alert(today.getTime() - selectedDate.getTime());
        if((today.getTime() - selectedDate.getTime())<0){
            alert('Den valgte dato er imorgen eller længere ude i fremtiden');
            return false;
        }else{
            return true;
        }
      }else{
        alert('den valgte dato er ikke gyldig');
      }
    }else{
        alert('du skal vælge dag, måned og år');
        return false;
    }
}
    </script>
</head>

<body>
<form name="test" action="1.PHP" method="get" onsubmit="return validering(document.forms['test']);">
<select name="DOBday" class="input">
        <option value="0" selected>Dag</option>
        <option value="01" >01</option>
        <option value="02" >02</option>
        <option value="03" >03</option>
        <option value="04" >04</option>
        <option value="05" >05</option>
        <option value="06" >06</option>
        <option value="07" >07</option>
        <option value="08" >08</option>
        <option value="09" >09</option>
        <option value="10" >10</option>
        <option value="11" >11</option>
        <option value="12" >12</option>
        <option value="13" >13</option>
        <option value="14" >14</option>
        <option value="15" >15</option>
        <option value="16" >16</option>
        <option value="17" >17</option>
        <option value="18" >18</option>
        <option value="19" >19</option>
        <option value="20" >20</option>
        <option value="21" >21</option>
        <option value="22" >22</option>
        <option value="23" >23</option>
        <option value="24" >24</option>
        <option value="25" >25</option>
        <option value="26" >26</option>
        <option value="27" >27</option>
        <option value="28" >28</option>
        <option value="29" >29</option>
        <option value="30" >30</option>
        <option value="31" >31</option>
      </select>
<select name="DOBmonth" class="input">
  <option value="0" selected>Måned</option>
  <option value="01" >01</option>
  <option value="02" >02</option>
  <option value="03" >03</option>
  <option value="04" >04</option>
  <option value="05" >05</option>
  <option value="06" >06</option>
  <option value="07" >07</option>
  <option value="08" >08</option>
  <option value="09" >09</option>
  <option value="10" >10</option>
  <option value="11" >11</option>
  <option value="12" >12</option>
</select>
<select name="DOByear" class="input">
  <option value="0" selected>År</option>
  <option value="2000" >2000</option>
  <option value="2001" >2001</option>
  <option value="2002" >2002</option> 
  <option value="2003" >2003</option>
  <option value="2004" >2004</option>
  <option value="2005" >2005</option>
  <option value="2006" >2006</option>
  <option value="2007" >2007</option>
  <option value="2008" >2008</option>
  <option value="2009" >2009</option>
  <option value="2010" >2010</option>
</select>
<input type="submit" value="testdato">
</form>

</body>
</html>
Avatar billede superrex Nybegynder
26. oktober 2004 - 10:17 #13
Det ser lovende ud.. jeg tester lige
Avatar billede superrex Nybegynder
26. oktober 2004 - 10:22 #14
Kan du ordne det sådan at den kun chekker om datoen er i fremtiden... ikke at de er udfyldt, for så er det perfekt
Avatar billede superrex Nybegynder
26. oktober 2004 - 10:57 #15
Jeg prøver at indsætte det i dette script men jeg kan ikke få det til at virke.

Kan du hjælpe?


<script type="text/javascript">
function validering()
  {
  error = 0;
  if((document.bruger_data.cpr.value=='') && (error==0)) 
  {       
    alert('cpr feltet skal udfyldes!');
    document.bruger_data.cpr.focus();
    error = 1;       
  }           
   
  if((document.bruger_data.cpr_sidste.value=='') && (error==0)) 
  {       
    alert('Du mangler de sidte 4 cifre i dit cpr nummer!');
    document.bruger_data.cpr_sidste.focus();
    error = 1;       
  }

  if((document.bruger_data.navn.value=='') && (error==0)) 
  {       
    alert('Du mangler udfylde navne feltet!');
    document.bruger_data.navn.focus();
    error = 1;       
  }

  if((document.bruger_data.efternavn.value=='') && (error==0)) 
  {       
    alert('Du mangler udfylde efternavn feltet!');
    document.bruger_data.efternavn.focus();
    error = 1;       
  }






var cpr = bruger_data.cpr.value;
if (( cpr.length < 6) && (error==0))
  {
    alert("Dit cpr nummer er for kort");
    document.bruger_data.cpr.focus();
    error = 1;
  }


var cpr = bruger_data.cpr_sidste.value;
if (( cpr.length < 4) && (error==0))
  {
    alert("Dit cpr nummer er for kort! der skal være 4 cifre efter stregen!");
    document.bruger_data.cpr_sidste.focus();
    error = 1;
  }




  if((document.bruger_data.email.value=='') && (error==0)) 
  {       
    alert('E-mail adressen skal udfyldes!!');
    document.bruger_data.email.focus();
    error = 1;       
  }


var email = bruger_data.email.value;
if (((email.indexOf ('@') == -1) || (email.indexOf ('.') == -1) || email.length < 7) && (error==0))
  {
      alert("Indtast venligst en gyldig e-mail adresse!");
    document.bruger_data.email.focus();
      error = 1;
  }
 
    var email = bruger_data.email.value;
  if ((email.indexOf ('/') != -1) || (email.indexOf ('[') != -1) || (email.indexOf (']') != -1) || (email.indexOf ('(') != -1) || (email.indexOf (')') != -1) || (email.indexOf ('{') != -1) || (email.indexOf ('}') != -1)  || (email.indexOf ('$') != -1) || (email.indexOf ('!') != -1) || (email.indexOf ('"') != -1) || (email.indexOf ('#') != -1) || (email.indexOf ('§') != -1)  || (email.indexOf ('½') != -1)  || (email.indexOf ('£') != -1) || (email.indexOf ('¤') != -1) && (error==0))
  {
    alert("Din email adresse indeholder ugyldige tegn!");
    document.bruger_data.email.focus();
    error = 1;
  }
 
    var email = bruger_data.email.value;
if ((email.indexOf ('@psykiatri.aaa.dk') == -1)  && (error==0))

  {
    alert("Din email adresse er ikke gyldig! du skal bruge en email adresse fra psykiatrien (xxx@psykiatri.aaa.dk)");
    document.bruger_data.email.focus();
    error = 1;
  }
 
    if((document.bruger_data.Stillingsbetegnelse.value=='xxxx') && (error==0)) 
  {       
    alert('Stillingsbetegnelse skal udfyldes!!');
    document.bruger_data.Stillingsbetegnelse.focus();
    error = 1;       
  }
 

    if((document.bruger_data.startepisoden.value=='XXXX') && (error==0)) 
  {       
    alert('Startepisoden skal udfyldes!!');
    document.bruger_data.startepisoden.focus();
    error = 1;       
  }
 
    if((document.bruger_data.varede_episoden.value=='XXXX') && (error==0)) 
  {       
    alert('Du skal vælge hvor længe episoden varede!!');
    document.bruger_data.varede_episoden.focus();
    error = 1;       
  }





    if((document.bruger_data.DOBday.value=='0') && (error==0)) 
  {       
    alert('Du skal vælge hvilken dag episoden startede!!');
    document.bruger_data.DOBday.focus();
    error = 1;       
  }


    if((document.bruger_data.DOBmonth.value=='0') && (error==0)) 
  {       
    alert('Du skal vælge hvilken måned episoden startede!!');
    document.bruger_data.DOBmonth.focus();
    error = 1;       
  }
 
    if((document.bruger_data.DOByear.value=='0') && (error==0)) 
  {       
    alert('Du skal vælge hvilket år episoden startede!!');
    document.bruger_data.DOByear.focus();
    error = 1;       
  }



    if((document.bruger_data.personaleja_nej_vedikke.value=='1') && (error==0)) 
  {       
    alert('Du skal vælge om du på forhånd havde følelsen at noget ville ske!!');
    document.bruger_data.personaleja_nej_vedikke.focus();
    error = 1;       
  }



    if((document.bruger_data.afsnit.value=='0') && (error==0)) 
  {       
    alert('Afsnit skal udfyldes!!');
    document.bruger_data.afsnit.focus();
    error = 1;       
  }

    if((document.bruger_data.Arbejdssted.value=='0') && (error==0)) 
  {       
    alert('Arbejdssted skal udfyldes!!');
    document.bruger_data.Arbejdssted.focus();
    error = 1;       
  }



if(! ( (document.forms[0].personaleja_nej_vedikke[0].checked)  || (document.forms[0].personaleja_nej_vedikke[1].checked) || (document.forms[0].personaleja_nej_vedikke[2].checked))    && (error==0)    ) 
  {       
    alert('Du skal vælge! om du på forhånd havde følelsen at noget ville ske:!');
    error = 1;       
  }   






function y2k(number) { return (number < 1000) ? number + 1900 : number; }
    function isDate (day,month,year) {
    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
      error = 1;
    var test = new Date(year,month,day);
    if ( (y2k(test.getYear()) == year) &&
        (month == test.getMonth()) &&
        (day == test.getDate()) )
        return true;
    else
        return false
          error = 1;
}


function validering(formobj){
    if(formobj.DOBday.selectedIndex>0 && formobj.DOBmonth.selectedIndex>0 && formobj.DOByear.selectedIndex>0){
      if(isDate(formobj.DOBday.options[formobj.DOBday.selectedIndex].value,formobj.DOBmonth.options[formobj.DOBmonth.selectedIndex].value,formobj.DOByear.options[formobj.DOByear.selectedIndex].value)){
          var selectedDate = new Date(parseInt(formobj.DOByear.options[formobj.DOByear.selectedIndex].value),parseInt(formobj.DOBmonth.options[formobj.DOBmonth.selectedIndex].value)-1,parseInt(formobj.DOBday.options[formobj.DOBday.selectedIndex].value));
        var now = new Date();
        var today = new Date(now.getYear(),now.getMonth(),now.getDate());
       
     
        if((today.getTime() - selectedDate.getTime())<0){
            alert('Den valgte dato er imorgen eller længere ude i fremtiden');
              error = 1;
            return false;
           
        }else{
            return true;
        }
      }else{
        alert('den valgte dato er ikke gyldig');
          error = 1;
      }
    }else{
        alert('du skal vælge dag, måned og år');
        error = 1;
        return false;
       
    }
}

  if(error == 0)
  document.bruger_data.submit();   
  }

// Slut -->
</script>
Avatar billede superrex Nybegynder
26. oktober 2004 - 11:05 #16
Nu har jeg fået det til at virke, jeg siger mange tak for hjælpen
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