Avatar billede hansen Nybegynder
16. marts 2001 - 09:36 Der er 16 kommentarer og
1 løsning

Validering ?

Jeg har en formular der skal valideres på, men mangler hjælpen hertil, er det noget du kan hjælpe med ?

Når der vælges periode i Dropdownboks, skal der valideres på Max prisfeltet, minimumpris er kr. 100, og maxpris kr. 99999 - Feltet må kun indeholde tal, ikke punktum,komma og deslige.

Hvis der ikke vælges noget i dropdownboksen, og der alligevel tastes noget ind i feltet, så skal der alligevel valideres efter de samme regler.

PS !
Det er ikke nødvendigt at der tastes et tal ind i feltet, det kan godt henstå som tomt felt ved søgning, så der skal kun valideres ved indtastning i feltet !!

Nuværende kode-----
<html>

<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 4.0\">
<meta name=\"ProgId\" content=\"FrontPage.Editor.Document\">
<title>Ny side 1</title>
</head>

<body>
<table border=\"1\" width=\"100%\">
    <tr><form method=\"POST\" action=\"soeg_resultat.asp\">
      <td width=\"26%\">Sæsonperiode&nbsp;</td>
      <td width=\"72%\"> <select size=\"1\" name=\"farve\">
              <option selected value=\"\"></option>
          <option value=\"blaa_mt\">Blå med transport</option>
          <option value=\"gron_mt\">Grøn med transport</option>
          <option value=\"rod_mt\">Rød med transport</option>
          <option value=\"gul_mt\">Gul med transport</option>

          <option value=\"blaa_ut\">Blå uden transport</option>
          <option value=\"gron_ut\">Grøn uden transport</option>
          <option value=\"rod_ut\">Rød uden transport</option>
          <option value=\"gul_ut\">Gul uden transport</option>

        </select> Hvis sæsonperiode er <b>valgt</b>: <b>angiv</b> max. ugepris<input type=\"text\" name=\"Max_pris\" size=\"8\">kr.</td>
    </tr><tr>
    <td colspan=\"2\"><input type=\"submit\" value=\"Søg\" name=\"B1\"></td></tr></form>
</table>
</body>

</html>
Avatar billede nute Nybegynder
16. marts 2001 - 09:45 #1
i ditt form tag legger du en onClick=\"java script:return validateForm();\"

deretter legger du dette scriptet inn på din side:

<script>

function validateForm(){
  var textField = document.forms[0].Max_pris.value;
  var dropDown  = document.forms[0].farve[document.forms[0].farve.selectedIndex].value
 
  if( textField != null && dropDown != null ){
    if( textField != null && !isNaN(textField) && textField > 100 && textField < 99999 ){
      // Alt ok
      return true;
    }else{
      alert(\"tekstfelt skal være et tall mellom x og y kroner\");
      return false;
    }
  } else {
    alert(\"Fyll ut minst et felt\");
    return false;
  }
  return true;
}

et raskt forslag...

/nute
</script>
Avatar billede hansen Nybegynder
16. marts 2001 - 10:03 #2
Jeg får en fejl i linien
    if( textField != null && !isNaN(textField) && textField > 100 && textField < 99999 ){

Tegnet ; var ventet ???
Avatar billede nute Nybegynder
16. marts 2001 - 10:08 #3
du kan prøve dette:

if( textField != null && (!isNaN(textField)) && (textField > 100) && (textField < 99999) ){

eller så kan du bare splitte det opp (så er det lettere å debugge):

if( textField != null && (!isNaN(testField)){
  if((textField > 100) && (textField < 99999)){

  }
}

/nute


 
 

Avatar billede hansen Nybegynder
16. marts 2001 - 10:34 #4
Det var bedre, næsten :-)

Den giver dog fejl ved dropdown, der kræver den at der skal indtastes noget i feltet først ?

Det skal den ikke, der skal valideres efter dropdown, eller bare ved indtastning !
Avatar billede nute Nybegynder
16. marts 2001 - 10:35 #5
hva mener du ?
Avatar billede hansen Nybegynder
16. marts 2001 - 10:36 #6
Når jeg prøver at dropdowne noget, før der er tastet noget ind i tekstfeltet, så afkræver den mig for noget input i tekstfeltet først ?
Avatar billede nute Nybegynder
16. marts 2001 - 10:40 #7
ahhhh....bytt ut :

if( textField != null && dropDown != null ){

med:

if( textField != null || dropDown != null ){

/nute
Avatar billede hansen Nybegynder
16. marts 2001 - 11:04 #8
Nute, prøv at se eks. her
http://www.voresfamilie.dk/asp_test/soeg_huslars.asp

så kan du nok bedre forstå hvad jeg mener :-)
Avatar billede nute Nybegynder
16. marts 2001 - 11:07 #9
HOV......grov feil av meg :):) litt tidlig på morgenen enda...

bytt ut:

<form method=\"POST\" action=\"soeg_resultat.asp\" onClick=\"java script:return validateForm();\">

med

<form method=\"POST\" action=\"soeg_resultat.asp\" onSubmit=\"java script:return validateForm();\">

/ntue
Avatar billede hansen Nybegynder
16. marts 2001 - 11:20 #10
Et skridt nærmere

Nu mangler der vist bare at feltet godt må være tomt, og kun tal validering ved input i feltet.

Avatar billede nute Nybegynder
16. marts 2001 - 11:36 #11
hmm.....jeg ser det har gått litt sterkt for meg i morgentimene...

bytt ut:

if( textField != null || dropDown != null ){

med:

if( textField != \"\" || dropDown != \"\" ){

/nute

GGRR...nå må det da snart fungere ;)
Avatar billede nute Nybegynder
16. marts 2001 - 12:03 #12
hei igjen....

jeg sender et revidert script...denne gangen har jeg testet det, og det fungerer....så du skulle ikke ha flere problemer (håper jeg)

function checkForm(){
  var textField = document.forms[0].Max_pris.value;
  var dropDown  = document.form.farve[document.form.farve.selectedIndex].value;
  if( textField != \"\" && dropDown == \"\" ){
    if( textField != null && !isNaN(textField) && textField >= 100 && textField <= 99999 ){
      // Alt ok
      return true;
    }else{
      alert(\"tekstfelt skal være et tall mellom x og y kroner\");
      return false;
    }
  } else if( textField == \"\" && dropDown == \"\" ){
    alert(\"Fyll ut minst et felt\");
    return false;
  }
  return true;
}

beklager alle disse små problemene....

/nute
Avatar billede hansen Nybegynder
16. marts 2001 - 12:05 #13
nute, jeg har et lille ønske mere, betaler gerne lidt flere point for det hvis du gider fixe det,

Ønske:
Når og hvis der bliver tastet noget ind i nedenstående felt, så skal der tjekkes for, om det er tal også, der behøves ikke tastet noget ind i det !

<input type=\"text\" name=\"max_personer\" size=\"6\">

Dit script indtil videre ser sådan ud:
<script>

function validateForm(){
  var textField = document.forms[0].Max_pris.value;
  var dropDown  = document.forms[0].farve[document.forms[0].farve.selectedIndex].value
 
  if( textField != \"\" || dropDown != \"\" ){
  if( textField != null && (!isNaN(textField)) && (textField >= 1) && (textField <= 99999) ){
      // Alt ok
      return true;
    }else{
      alert(\"Angiv venligst max. pris - i hele kroner ( tal )\");
      return false;
    }
  }
  return true;
}
</script>
Avatar billede nute Nybegynder
16. marts 2001 - 12:43 #14
da skal det se sånn ut:

<script>

function validateForm(){
  var personField = document.forms[0].max_personer.value;
  var textField = document.forms[0].Max_pris.value;
  var dropDown  = document.forms[0].farve[document.forms[0].farve.selectedIndex].value
  if( personField != \"\" && isNaN(personField) ){
    alert(\"Antall personer må være et nummer\");
    return false;
  }
  if( textField != \"\" || dropDown != \"\" ){
  if( textField != null && (!isNaN(textField)) && (textField >= 1) && (textField <= 99999) ){
      // Alt ok
      return true;
    }else{
      alert(\"Angiv venligst max. pris - i hele kroner ( tal )\");
      return false;
    }
  }
  return true;
}
</script>

/nute
Avatar billede hansen Nybegynder
16. marts 2001 - 13:01 #15
Takker meget for hjælpen
Avatar billede nute Nybegynder
16. marts 2001 - 13:04 #16
bare hyggelig... :)
Avatar billede jakoba Nybegynder
17. marts 2001 - 23:00 #17
nute >> i eventhandlere som fx:
  onClick=\"java script:return validateForm();\"
bør der ikke stå  java script:  forrest i strengen. Det bør være
  onClick=\"return validateForm();\"
IE accepterer den anden form fordi IE accepterer hvadsomhelst :). Men Netscape brokker sig over forkert syntaks.
\'java script:\' er kun nødvendig der hvor html forventer en URL.
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