Avatar billede php_newbie Nybegynder
14. maj 2002 - 22:05 Der er 5 kommentarer og
1 løsning

Flere javscript validerings problemmer :(((

Hejsa…

Jeg er stødt ind i flere javscript validerings problemmer…. Og håbede på lidt hjælp.


Jeg har et felt som hedder årgang fra og et felt som hedder årgang til.
(felterne hedder argang_fra og aargang_til)

Det skal være sådan at man ikke behøves at udfylde nogle af de to felter men hvis man gør skal de være på 4 tal ! Man skal også kunne nøjes med at udfylde fx årgang fra.

Der udover har jeg også to felter pris fra og pris til her skal de samme regler som før gælder på nær at i stedet at det skal være på fire tal skal det være i mellem 4 og 9 cifre…
(felterne hedder pris_fra og pris_til)


Validerings typen skal være lavet på samme møde som resten af min validering så den er lige til at sætte ind. I min js fil.

function boatsearch_validate()
{
  error = 0;
 
  if(!((document.boatsearch_form.sejlbaade.checked)||(document.boatsearch_form.motorbaade.checked)||(document.boatsearch_form.motorsejlere.checked)||(document.boatsearch_form.joller.checked))  && (error==0))
  {
    alert('Du skal vælge minimum en bådtype!\nFor at få vist nogle søgeresultater.');
    error = 1;
  }
  if(!((document.boatsearch_form.firma1.checked)||(document.boatsearch_form.firma2.checked)||(document.boatsearch_form.firma3.checked)||(document.boatsearch_form.firma4.checked))  && (error==0))
  {
    alert('Du skal vælge minimum en annoncør!\nFor at få vist nogle søgeresultater.');
    error = 1;
  }
  if(error == 0)
  document.boatsearch_form.submit();         
  }


PÅ FORHÅND TAK…
Avatar billede jespernaur Nybegynder
15. maj 2002 - 00:08 #1
Her er 2 funktioner, der burde kunne opfylde dine behov:

function ZeroOr4digits( txt )
{
  var r = new RegExp(/(^[0-9]{4}$)|(^$)/);
  return txt.match(r);
}


function FourToNineDigits( txt )
{
  var r = new RegExp(/^[0-9]{4,9}$/);
  return txt.match(r);
}


Du skal kalde dem med de relevante felter som parametre, der returneres true
eller false afhængig af om det gik godt eller skidt.

Mvh
Jesper Naur
Avatar billede php_newbie Nybegynder
15. maj 2002 - 17:34 #2
Jeg kan ikke helt bruge dit svar !!

Funktion skal bygges ind i denne:

function boatsearch_validate()
{
  error = 0;
 
  if(!((document.boatsearch_form.sejlbaade.checked)||(document.boatsearch_form.motorbaade.checked)||(document.boatsearch_form.motorsejlere.checked)||(document.boatsearch_form.joller.checked))  && (error==0))
  {
    alert('Du skal vælge minimum en bådtype!nFor at få vist nogle søgeresultater.');
    error = 1;
  }
  if(!((document.boatsearch_form.firma1.checked)||(document.boatsearch_form.firma2.checked)||(document.boatsearch_form.firma3.checked)||(document.boatsearch_form.firma4.checked))  && (error==0))
  {
    alert('Du skal vælge minimum en annoncør!nFor at få vist nogle søgeresultater.');
    error = 1;
  }
  if(error == 0)
  document.boatsearch_form.submit();         
  }

Så hvis det ikke er det skal den ændre error til 1 og udskrive en alert ligesom de andre gør gider ikke have flere funktioner til det. Felterne hedder

pris_fra (4-9 tegn) - pris_til (4-9 tegn)

aargang_fra (Max 4 tegn) - aargang_til. (max 4 tegn)

men som sagt skal den kunne chekke feltet hvis der er skrevet noget i det.
Avatar billede jespernaur Nybegynder
15. maj 2002 - 20:27 #3
Vi prøver en gang til. Jeg har bibeholdt mine nye funktioner, og
indbygget kaldene i din originale boatsearch_validate. Måske har
du brug for at rette fejludskrifterne lidt til, men det må du altså
virkelig selv klare.

Mvh
Jesper Naur

function ZeroOr4digits( txt )
{
  var r = new RegExp(/(^[0-9]{4}$)|(^$)/);
  return txt.match(r);
}


function FourToNineDigits( txt )
{
  var r = new RegExp(/^[0-9]{4,9}$/);
  return txt.match(r);
}

function boatsearch_validate()
{
  error = 0;
 
  if(!((document.boatsearch_form.sejlbaade.checked)||(document.boatsearch_form.motorbaade.checked)||(document.boatsearch_form.motorsejlere.checked)||(document.boatsearch_form.joller.checked))  && (error==0))
  {
    alert('Du skal vælge minimum en bådtype!nFor at få vist nogle søgeresultater.');
    error = 1;
  }
  if(!((document.boatsearch_form.firma1.checked)||(document.boatsearch_form.firma2.checked)||(document.boatsearch_form.firma3.checked)||(document.boatsearch_form.firma4.checked))  && (error==0))
  {
    alert('Du skal vælge minimum en annoncør!nFor at få vist nogle søgeresultater.');
    error = 1;
  }


if (!FourToNineDigits( document.boatsearch_form.pris_fra.value ) && (error == 0)) {
  alert('Pris fra skal angives');
  error = 1;
}

if (!FourToNineDigits( document.boatsearch_form.pris_til.value ) && (error == 0)) {
  alert('Pris til skal angives');
  error = 1;
}

if (!ZeroOr4digits( document.boatsearch_form.aargang_fra.value ) && (error == 0)) {
  alert('Årgang fra skal angives tom eller med 4 cifre');
  error = 1;
}

if (!ZeroOr4digits( document.boatsearch_form.aargang_til.value ) && (error == 0)) {
  alert('Årgang til skal angives tom eller med 4 cifre');
  error = 1;
}



  if(error == 0)
  document.boatsearch_form.submit();         
  }
Avatar billede php_newbie Nybegynder
16. maj 2002 - 19:18 #4
Den er næsten perfekt nu !!!

Pris fra og pris til skal ikke angives du må have misforstået mig de må gerne kunne stå tomme.
Avatar billede jespernaur Nybegynder
16. maj 2002 - 20:09 #5
Så retter vi bare FourToNineDigits til

function FourToNineDigits( txt )
{
  var r = new RegExp(/(^[0-9]{4,9}$)|(^$)/);
  return txt.match(r);
}

Så burde den være der

Mvh
Jesper Naur
Avatar billede php_newbie Nybegynder
16. maj 2002 - 20:58 #6
Tak !!
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