Avatar billede torstein Novice
14. april 2006 - 09:23 Der er 2 kommentarer og
1 løsning

Datoformatering og sammenligning

Jeg kan ikke se skoven for bare træer. Eller også er det fordi JavaScript ikke er min stærke side. Nedenstående skal inden formen sendes tjekke om de to datofelter er indtastet korrekt (YYYY-MM-DD), om slutdatoen er senere end eller lig startdatoen, samt om de resterende felter er udfyldt.

Reelt er det vel to funktioner, som skal køres, og jeg er i tvivl om jeg kalder begge funktioner i min

<form onSubmit="return tjekDato(datostart) && Checkform(this);" action="" method="post">??

Hjælp tiltrængt og ønskes.

<koden>

<form onSubmit="return tjekDato(datostart) && Checkform(this);" action="" method="post">
<table border=0 width=95%><tr>
<td width=40%>Overskrift:</td>
<td width=60%><input type=text name="overskrift" size =50 value=""></td></tr></table>
<table border=0 width=95%><tr><td width=40%>Startdato: </td>
<td width=60%><input type="text" name="datostart" size =20 value="YYYY-DD-MM"></td></tr></table>
<table border=0 width=95%><tr><td width=40%>Slutdato: </td>
<td width=60%><input type="text" name="datoslut" size=20 value="YYYY-DD-MM"></td></tr></table>
<table border=0 width=95%><tr><td width=40%>Opgave: </td>
<td width=60%><input type="text" name="tekst" size=20 value=""></td></tr></table>

<div align="center"><input type="submit" name="action" size=10 value="opdater"></div></form>


<script language="JavaScript">
<!--
function tjekDato(datostart) {
  temp = datostart.split("-");
  d = new Date(parseInt(temp[0], 10), parseInt(temp[1], 10) - 1, parseInt(temp[2], 10));
  if (d.getFullYear() != parseInt(temp[0], 10) || (d.getMonth() + 1) != parseInt(temp[1], 10) || d.getDate() !=

parseInt(temp[2], 10)) {
    alert("Datoen er ikke gyldig!\n Formatet skal være:\n      YYYY-MM-DD");
    return false;
  }

  return true;
}

function Checkform(thisform) {
    // Startværdier
    strError = 'Der opstod følgende fejl:\n';
    intError = 0;
   
    //Check overskrift,  er den tom
    if (thisform.overskrift.value == "")
    {
    strError = strError + '- Overskrift mangler !\n'
    intError = 1;
    thisform.brugernavn.focus();
           

    }

    // Check tekst
    if (thisform.tekst.value == "")
    {
    strError = strError + '- Opgavebeskrivelse mangler !\n'
    intError = 1;
    thisform.efternavn.focus();

    }
   
    if (intError == 1) {
    alert(strError)
    return false;
    }
   
}
</script>
Avatar billede horsmark Nybegynder
15. april 2006 - 11:03 #1
<style>
.myForm {
        width:400px;
}

.myForm label {
  clear:both;
}

.myForm label, .myForm input {
  width:200px;
  float:left;
}

.myForm .btn-submit {
  margin-top:20px;
    float:right;
    width:100px;
}

</style>

<form class="myForm" action="" method="post" onSubmit="return validateAndSubmit(this);">
    <label>Overskrift:</label>
    <input type=text name="overskrift" size =50 value="">
  <label>Startdato:</label>
  <input type="text" name="datostart" size =20 value="YYYY-DD-MM">
  <label>Slutdato:</label>
  <input type="text" name="datoslut" size=20 value="YYYY-DD-MM">
  <label>Opgave:</label>
  <input type="text" name="tekst" size=20 value="">
    <input class="btn-submit" type="submit" name="action" value="opdater">
</form>


<script type="text/javascript">
<!--
function tjekDato(datostart) {
  temp = datostart.split("-");
  d = new Date(parseInt(temp[0], 10), parseInt(temp[1], 10) - 1, parseInt(temp[2], 10));
  if (d.getFullYear() != parseInt(temp[0], 10) || (d.getMonth() + 1) != parseInt(temp[1], 10) || d.getDate() !=

parseInt(temp[2], 10)) {
    return false;
  }
  return true;
}

function validateAndSubmit(frm) {
    var strError = ""
  if ( frm.overskrift.value == "" )    strError += 'Overskrift mangler.\n'
  if ( !tjekDato(frm.datostart.value) ) strError += 'Startdato er ugyldig. Formatet skal være: YYYY-MM-DD.\n'
  if ( !tjekDato(frm.datoslut.value) )  strError += 'Slutdato er ugyldig. Formatet skal være: YYYY-MM-DD.\n'
  if ( tjekDato(frm.datostart.value) && tjekDato(frm.datoslut.value) ){
      if ( frm.datostart.value > frm.datoslut.value ) strError += "Slutdato skal forefalde efter startdato.\n"
  }
  if ( frm.tekst.value == "")          strError += 'Opgavebeskrivelse mangler.\n'
  if ( strError != ""){
      alert(strError)
      return false
    } else {
        return true
    }

}
</script>
Avatar billede torstein Novice
15. april 2006 - 12:10 #2
Nydeligt. Et svar tak. God påske.
Avatar billede horsmark Nybegynder
15. april 2006 - 12:38 #3
ilm :-)
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