Avatar billede 13thsky Nybegynder
16. januar 2004 - 15:02 Der er 23 kommentarer og
1 løsning

Validering med variabler?

Jeg har følgende:

function Checkdatoformat1() {
    if (form1.dato.value == '??/??-????') { alert('Datoen skal skrives i det rigtige format'); return false }
}

Hvordan skriver jeg således at ? gælder for alle inputs?
- Dvs. således at den returnerer false, hvis inputtet er 12/10-2004
Avatar billede medions Nybegynder
16. januar 2004 - 15:11 #1
Avatar billede thesurfer Nybegynder
16. januar 2004 - 15:12 #2
Der skal vist noget RegExp til.. ikke noget jeg har erfaring med..
Avatar billede thesurfer Nybegynder
16. januar 2004 - 15:13 #3
hmm.. er det en bestemt værdi, eller er det formatet?
Hvis det er formatet, er det nemmest med RegExp (som jeg stadig ikke har erfaring med :-) )
Avatar billede 13thsky Nybegynder
16. januar 2004 - 15:17 #4
-det kan da ikke passe at der skal to siders kode til at løse dette lile og simple problem..?

Jeg havde forestillet mig noget i stil med:
function Checkdatoformat1() {
    if (form1.dato.value == '__' + '/' + '__' + '-' + '____') { alert('Datoen skal skrives i det rigtige format'); return false }
}
Avatar billede thesurfer Nybegynder
16. januar 2004 - 15:28 #5
Det der skal checkes er:
plads 12: skal være et tal mellem 1 og 31
plads 3: skal være et "/"
plads 45: skal være et tal mellem 1 og 12
plads 6: skal være et "-"
plads 7-10: tal

Det gøres nemmest med RegExp, tror jeg.. ellers skal du bruge en del IF-sætninger..
Avatar billede thesurfer Nybegynder
16. januar 2004 - 15:28 #6
rettelse:
plads 1+2
..
plads 4+5
Avatar billede 13thsky Nybegynder
16. januar 2004 - 15:36 #7
nå ok, men kan man gøre det omvendt somehow? Dvs. returnere false hvis formatet ikke er xxxx-xx-xx?

Sådan set det samme vel?

//13th sky
Avatar billede 13thsky Nybegynder
16. januar 2004 - 15:43 #8
Jeg vil gerne lave det med if sætniger... hvordan skriver jeg så "plads12" feks.?

//13th Sky
Avatar billede thesurfer Nybegynder
16. januar 2004 - 16:03 #9
Her er et eksempel med IF-sætninger.. den checker formatet dd/mm-åååå..
f.eks.: 12/10-2004

Jeg har med vilje skrevet "aa" i stedet for "12" i tekstboksen.. det er så du kan se at den virker..
Efter at du prøver med "aa", erstatter du "aa" med "12" og prøver igen..

<script type="text/JavaScript">
function check(dato)
{

var dag = dato.substring(0,2); // is 12
var slash = dato.substring(3,2); // is /
var maaned = dato.substring(3,5); // is 10
var minus = dato.substring(5,6); // is -
var aar = dato.substring(6,10); // 2004
var fejl = "ja";

if ( (dag >= 1) && (dag <= 31) ) {
  if (slash == "/") {
    if ( (maaned >= 1) && (maaned <= 12) ) {
      if (minus == "-") {
        if (aar.length == 4) {
      fejl = "nej";
        }
      }
    }
  }
}

if (fejl == "ja") {
  alert('Der er en fejl i datoen!');
  return false;
} else {
  alert('alt er ok!');
  return true;
}

}
</script>

<form onSubmit="return check(this.dato.value);">
<input type="text" name="dato" value="aa/10-2004">
<input type="submit" value="Send">
</form>
Avatar billede 13thsky Nybegynder
16. januar 2004 - 16:33 #10
Jeg har lavet nogle modifikationer på din kode, men nu melder den fejl?

function Checkdato() {

var aar = form1.dato.substring(0,4);
var streget = form1.dato.substring(4,5);
var maaned = form1.dato.substring(5,7);
var stregto = form1.dato.substring(7,8);
var dag = form1.dato.substring(8,10);

if ( (aar.length != 4) || (streget != '-') || (maaned.length != 2) || (stregto != '-') || (dag.length != 2) ) { alert('Begge datoer skal være i formatet ÅÅÅÅ-MM-DD'); return false }
}
Avatar billede 13thsky Nybegynder
16. januar 2004 - 16:34 #11
hvis jeg fjerne form1, melder den at dato er udefineret.
(dato er navnet på en tekstfelt og formen hedder form1)
Avatar billede thesurfer Nybegynder
16. januar 2004 - 16:47 #12
Det er fordi scriptet køres når formen submittes.. hvordan ser din form ud?

onSubmit delen skal forblive som den er.. smid lige din form herind..
Avatar billede 13thsky Nybegynder
16. januar 2004 - 16:52 #13
<form name="form1" method="post" action="newinput.php?save=yes" onsubmit="return Checkdato()">
  <table width="1000" border="0" cellspacing="0" cellpadding="0">
   
    <tr>
      <td><div align="center">
          <input name="dato" type="text" value="<? echo $dato; ?>" size="10">
        </div></td>
      <td><div align="center">
          <input name="kundenummer" type="text" value="<? echo $kundenummer; ?>" size="10">
        </div></td>
      <td><div align="center">
          <input name="nummer" type="text" value="<? echo $nummer; ?>" size="10">
        </div></td>
      <td><div align="center">
          <input name="maerke" type="text" value="<? echo $maerke; ?>" size="10">
        </div></td>
      <td><div align="center">
          <select name="hd">
            <option><? echo $hd; ?></option>
            <option>H</option>
            <option>D</option>
          </select>
        </div></td>
      <td><div align="center">
          <select name="mq">
            <option><? echo $mq; ?></option>
            <option>M</option>
            <option>Q</option>
          </select>
        </div></td>
      <td><div align="center">
          <input name="beskrivelse" type="text" value="<? echo $beskrivelse; ?>" size="15">
        </div></td>
      <td><div align="center">
          <input name="pris" type="text" value="<? echo $pris; ?>" size="6">
        </div></td>
      <td><div align="center">
          <input name="pristilbud" type="text" value="<? echo $pristilbud; ?>" size="6">
        </div></td>
      <td><div align="center">
          <input name="tilbudgodkendt" type="checkbox" value="checkbox" <? if($betalt=="checkbox") { echo " checked"; }?>></div></td><td><div align="center">
        </div></td>
      <td><div align="center">
          <input type="checkbox" name="lavet" value="checkbox" <? if($betalt=="checkbox") { echo " checked"; }?>>
        </div></td>
      <td><div align="center">
          <select name="levering">
            <option><? echo $levering; ?></option>
            <option>Afhentes</option>
            <option>Afleveres</option>
            <option>Sendes</option>
          </select>
        </div></td>
      <td><div align="center">
          <input name="leveringdato" type="text" value="<? echo $leveringdato; ?>" size="10">
        </div></td>
      <td><div align="center">
          <select name="kunde">
            <option value="1"><1</option>
<option value="2"><2</option>

          </select>
        </div></td>
      <td><div align="center">
          <input type="checkbox" name="betalt" value="checkbox" <? if($betalt=="checkbox") { echo " checked"; }?>>
        </div></td>
    </tr>
  </table>
  <div align="left"></div>
  <table width="985" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td><div align="right"><a href="java script:void( submitMe('newkunde.php?fromnewcase=yes'));"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Tilf&oslash;j
          ny kunde</font></font></a></div></td>
    </tr>
  </table>
    <input type="submit" name="Submit" value="  Tilf&oslash;j  ">
  </p>
</form>
Avatar billede 13thsky Nybegynder
16. januar 2004 - 16:53 #14
Den ser ca sådan ud...
Avatar billede thesurfer Nybegynder
16. januar 2004 - 16:56 #15
Brug:
onsubmit="return Checkdato(this.dato.value)">

og:
function Checkdato(dato) {
Avatar billede 13thsky Nybegynder
16. januar 2004 - 17:05 #16
FEJL: object doesn't support this proporty og method

//13th SKy
Avatar billede thesurfer Nybegynder
16. januar 2004 - 17:05 #17
Hvor har du placeret mine linier henne? :)
Avatar billede thesurfer Nybegynder
16. januar 2004 - 17:07 #18
Smide lige hele siden herind.. i 1 stykke.. dvs både formen og javascriptet..
Kort sagt: det hele.. derud af.. :)
Avatar billede 13thsky Nybegynder
16. januar 2004 - 17:09 #19
Nej, ok så er den der... skulle jo fjerne form1.... Men de er et nyt problem nu: jeg havde min form til at checke et andet tekst felt før. Hvordan kombinerer jeg dem i "onsubmit=" linien?

onsubmit="return Checknavn()">
onsubmit="return Checkdato(this.dato.value)">
Avatar billede thesurfer Nybegynder
16. januar 2004 - 17:14 #20
huh? hvordan kommer Checknavn() ind i billedet? :)
Avatar billede 13thsky Nybegynder
16. januar 2004 - 17:16 #21
Det var bare en function jeg havde før... Men jeg skriv bare de to functioner sammen... Takker for hjælpen... Drop et svar Surfer... (c:
Avatar billede thesurfer Nybegynder
16. januar 2004 - 17:20 #22
OK :)
Avatar billede 13thsky Nybegynder
16. januar 2004 - 17:25 #23
TnX!
Avatar billede thesurfer Nybegynder
16. januar 2004 - 17:27 #24
Takker 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