Avatar billede nethuset Nybegynder
12. juli 2001 - 11:00 Der er 2 kommentarer og
1 løsning

Check om dato er før dags dato

Hvordan tjekker man, om noget er før dags dato, dvs. hvis det idag er d. 120701 og man så skriver 110701, skal den vise en alertbox...

Jeg har iøvrigt 6 felter på en side - kan man lave noget i stil med checkDato(DetteFelt) agtigt noget, således at jeg ikke skal lave et laaaaangt script????

- Kenneth
Avatar billede roenving Novice
12. juli 2001 - 11:26 #1
Function checkDato(DetteFelt) {
  idag = new Date();
  aar = Number(DetteFelt.value[0].substr(5, 2));
  maa = Number(DetteFelt.value[0].substr(3, 2));
  dag = Number(DetteFelt.value[0].substr(1, 2));
  if (new Date(aar, maa, dag) < idag) {
      alert(\'Fejl i dato\');
      return false;
  }
  return true;
}
Avatar billede roenving Novice
12. juli 2001 - 11:31 #2
Hov, der skal vist ikke index på value :[

Og...
måske må du erklære datoen fra feltet før du foretager sammenligningen, men ellers så har du ret: en lille funktion, så er den fjong. Hvis du så vil have forskellige alerts, skal du bare tilføje den som parameter.

Jeg har ikke sat noget som helst check på inputtet, det kan du jo også tilføje -- f.eks. at der i det hele taget er 6 tegn!

hth
jes
Avatar billede nute Nybegynder
12. juli 2001 - 11:32 #3
eller en litt mer avansert validering:

<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">
<!--

//-->
</SCRIPT>

<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">
<!--

var days = [31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30];
var dayList, monthList, yearList, thisDate, dValue, mValue, yValue;

function initList(){
  thisDate  = new Date();
  dayList  = \"<select name=\\\"day\\\" size=\\\"1\\\">\\n\";
    dayList  += generateList(1, days[thisDate.getMonth()], thisDate.getDate() );
    dayList  += \"</select>\\n\";
    monthList = \"<select name=\\\"month\\\" size=\\\"1\\\" onChange=\\\"formatDate(this.form);\\\">\\n\"
    monthList += generateList(1, 12, (thisDate.getMonth() + 1) );
    monthList += \"</select>\\n\"
    yearList  = \"<select name=\\\"year\\\" size=\\\"1\\\" onChange=\\\"formatDate(this.form);\\\">\\n\"
    tmpYear=navigator.appName==\"Netscape\"?thisDate.getYear()+1900:thisDate.getYear();
    yearList  += generateList(1975, tmpYear, tmpYear );
    yearList  += \"</select>\\n\"
}

function generateList( start, stop, curVal ){
  var tmpVar = \"\";
    for( i = start; i <= stop; i++ ){
      tmpVar += \"<option value=\\\"\" + i + \"\\\"\" + (i == curVal?\" selected\":\"\") + \">\" + i + \"</option>\\n\";
    }
  return tmpVar;
}

function formatDate( form ){
    dValue  = form.day[form.day.selectedIndex].value;
    mValue = form.month[form.month.selectedIndex].value;
    yValue  = form.year[form.year.selectedIndex].value;
    form.day.options.length = 0;
    days[1]=(yValue%4==0&&yValue%100!=0)||(yValue%400==0)?29:28;
    for (i = 0; i < days[mValue - 1]; i++) {
      form.day.options[i] = new Option(i + 1, i + 1);
        if( i == dValue ){
          form.day.selectedIndex = i - 1;
        }
    }
    if(form.day.selectedIndex<=0&&dValue!=1){
      form.day.selectedIndex = thisDate.getDate() - 1;
    }
}

function checkDate(){
  dValue  = form.day[form.day.selectedIndex].value;
  mValue = form.month[form.month.selectedIndex].value;
  yValue  = form.year[form.year.selectedIndex].value;
  var todayDate = new Date();
    var newDate  = new Date(yValue, (mValue - 1), dValue, todayDate.getHours(), todayDate.getMinutes(), todayDate.getSeconds() );
    alert( \"hey\" );
    if( (Date.parse(todayDate) - Date.parse(newDate) ) > 0 ){
      alert( \"Valgt dato er mindre enn dagens dato!\");
    } else if( (Date.parse(todayDate) - Date.parse(newDate) ) < 0 ){
      alert( \"Valgt dato er større enn dagens dato!\");
    } else {
      alert( \"Dato er den samme!\");
    }
    return false;
}
initList();
document.write(\"<html>\\n<body>\\n<form name=\\\"form\\\" onSubmit=\\\"return checkDate();\\\">\\n\");
document.write(dayList + monthList + yearList);
document.write(\"<input type=\\\"submit\\\"></form></body></html>\");
//-->
</SCRIPT>


/nute
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