Avatar billede bjarne1234 Nybegynder
20. juli 2004 - 17:32 Der er 25 kommentarer

Validering af formfelt

Hej
Jeg har et formfelt med flere input felter. 4 felter ønsker jeg valideret inden afsendelse.
Første felt (navn) ønsker jeg at man skal udfylde ellers en advarsel (det har jeg fod på).
De 3 andre felter (hold - bold - mål) må enten stå tomme eller kun angives med et - x
Alt andet lige skal der meldes felj.
Hvordan angives det, og kan det samlet i et script?

På forhånd tak for hjælpen
Avatar billede roenving Novice
20. juli 2004 - 17:37 #1
Hvorfor ikke bruge tre checkboxe ?-)
Avatar billede jamiros Novice
20. juli 2004 - 17:57 #2
<html>
<head>
<script type="text/javascript">
<!--

function validering()
  {
  error = 0;
  if((document.forms[0].navn.value=='') && (error==0)) 
  {       
    alert('Du skal angive navn');
    document.forms[0].navn.focus();
    error = 1;       
  }           

  if(error == 0)
  document.forms[0].submit();   
  }

//  -->
</script>
</head>
<body>
<form action="" method="post" onsubmit="validering();return false;">
<input type="text" name="navn"><br>
<input type="checkbox" name="bold"> bold<br>
<input type="checkbox" name="maal"> mål<br>
<input type="checkbox" name="hold"> hold<br>
<input type="submit" value="Klik her for at validere">
</form>
</body>
</html>
Avatar billede jamiros Novice
20. juli 2004 - 18:00 #3
Hvis du skal bruge et x senere kan evt. sætte value="X" i checkbox'ene

:-)
Avatar billede roenving Novice
20. juli 2004 - 18:23 #4
Jeg kan altså ikke lide den validering (er det html.dks ?-), hvis ikke man samler alle fejlmeddelelser sammen til en ...

Ellers giver den 30 linjer overflødig kode ...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Tomt dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
html,body{height:100%;margin:10px;border:0px;padding:0px;font-family:tahoma,verdana,arial,sans-serif;font-size:small;}
</style>
<script language="javascript" type="text/javascript">
function valider(f){
  if(f.navn.value==f.navn.defaultValue){
    alert('Du er nødt til at udfylde navne-feltet !-)');
    f.navn.focus();
    return false;
  }
  return true;
}
</script>
</head>
<body>
<br>
<form id="minForm" name="minForm" action="java script:void(0)" onsubmit="return valider(this);">
Navn: <input id="navn" name="navn" type="text" value="Skriv dit navn ..." onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;" size="20">
<br>Hold: <input id="hold" name="hold" type="checkbox" value="X">
<br>Bold: <input id="bold" name="bold" type="checkbox" value="X">
<br>Mål: <input id="mål" name="mål" type="checkbox" value="X">
<br><input id="Send" name="Send" type="submit" value="Send">
</form>
</body>
</html>
Avatar billede jamiros Novice
20. juli 2004 - 19:07 #5
--> roenving

....men det er måske lidt mere overskueligt for Bjarne.
Og det virker fremragende. !?!

:-) Jamiros
Avatar billede bjarne1234 Nybegynder
20. juli 2004 - 20:45 #6
Først vil jeg sige jer tak. Her får man klar hjælp og et høfligt sprogbrug.
Det skal i have ros for.
Nå til scriptet.
Jeg forstår godt valideringen af feltet "navn", men jeg forstår ikke rigtigt de andre felter. Brugeren må godt undlade at indsætte værdier, men gør de det, må kun bogstavet x anvendes. Afsættes andet end et tomt felt eller det omtalte x skal der meldes fejl.
Avatar billede jamiros Novice
20. juli 2004 - 21:59 #7
Hej Bjarne
Vi har valgt at bruge checkboxe. Hvis man ikke checker dem har de ingen værdi og hvis deres value er sat til "X", så er det værdien ved check af boxen.
Dit oplæg til hvordan det skal gøres er er mere kodetungt, men løsningen giver det samme. Hvis jeg har misforstået dit ønske må du erne forklare det nærmere :-)

Mvh. Jamiros
Avatar billede roenving Novice
21. juli 2004 - 12:41 #8
Jamiros har helt ret !-)

Det er fidusen med en checkbox, at den kun kan have en værdi eller ikke have en værdi, altså er den valid, uden at vi behøver at undersøge det specielt !o]
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 13:32 #9
Hej Jamiros
Tak for din store hjælp, jeg har som sådan via dig fået det til at virke.
Men nu er problevet bare når jeg vil have data fra checkbox retur fra databasen så kommer "fluebenet" ikke med.
Mit udtræk ser sådan ud:
<input name="hold" type="checkbox" value="<% = data("hold")%>">
Det virker hvis data er indlagt via tekstbox men ikke hvis de er kommet via checkbox.
Hvad går galt her

M.v.h. Bjarne
Avatar billede roenving Novice
21. juli 2004 - 13:38 #10
-- du får vel så en value, som er on, når den er krydset af ...
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 13:42 #11
nej sagen er den at på den ene site kan man udfylde felter som så valideres (det ved du) og lægges så i databasen. Næste mulighed er så at man kan hente oplysninger op igen hvis man ønsker at rette i disse. Har han markeret f.eks. feltet "hold" og så henter dataerne op igen (i checkboxe) så er denne ikke markeret????
Jeg håber du forstår mig- jeg kan altså ikke få en checkbox til at reagere den anden vej, men der i mod en tekstbox kan
Avatar billede roenving Novice
21. juli 2004 - 13:49 #12
<input type="checkbox" name="hold"<%if rs("hold")="X" then response.write("checked")%>>Hold
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 14:08 #13
Jeg får denne besked når jeg vil afvikle din linie. Hvordan får jeg defineret rs?
Variable is undefined: 'rs'
Avatar billede roenving Novice
21. juli 2004 - 14:12 #14
-- den brugte jeg bare, da rs ofte bruges som variabel til at indeholde ens resultset fra en database-forespørgsel ...

Hvordan skriver du værdien i navne-feltet ?-)
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 14:15 #15
Jeg er ikke helt med på hvad du mener...
Avatar billede roenving Novice
21. juli 2004 - 14:25 #16
Når du skal hente data frem har du et script af en slags, som viser data, vis noget af den kode hvor du udskriver et felt med data i !-)
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 14:32 #17
Input af data ser du lidt højere oppe på denne side
Avatar billede roenving Novice
21. juli 2004 - 14:49 #18
Du skriver:
"Næste mulighed er så at man kan hente oplysninger op igen hvis man ønsker at rette i disse."

Hvordan udskriver du de data ?-)
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 14:59 #19
Data fra databasen til tekstfelt hentes sådan:
<input name="by" type="text" value="<% = data("by")%>" size="30" maxlength="12">
Og det virker perfekt.
Men som sagt checkboxe reagerer ikke med følgende linie:
<input name="hold" type="checkbox" value="<% = data("hold")%>">

Prøver jeg din linie og undlader f.eks. "rs" så den ser sådan ud:
<input type="checkbox" name="bold"<%if ("bold")="x" then response.write("checked")%>> Boldsponsor

Så er der ingen reaktion - men ej heller fejl.
Checkboxen står tom trods det den burde reagere med en markering
Avatar billede roenving Novice
21. juli 2004 - 15:25 #20
<input type="checkbox" name="bold"<%if data("bold")="x" then response.write("checked")%>> Boldsponsor

-- hvis det du har i feltet er "x" !-)
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 15:34 #21
Ja det var en mulighed, men...

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
Avatar billede roenving Novice
21. juli 2004 - 15:44 #22
-- den fejl kender jeg ikke noget til, der skal du nok spørge i asp-kategorien ...

-- og man kan selvfølgelig lave en javascript-ting, som gennemløber formen onload og checker de, som skal være afkrydset:

<script type="text/javascript">
function checkChecks(){
  var e = document.FORMNAVN.elements;
  for(i=0;e.length>i;i++){
    if(e.type=="checkbox"&&e.value=="x")e.checked = true;
  }
}
</script>

-- og tilføje i body:

<body ... onload="checkChecks();">
Avatar billede bjarne1234 Nybegynder
21. juli 2004 - 15:48 #23
Fint nok - tak for hjælpen
Avatar billede roenving Novice
21. juli 2004 - 15:56 #24
Kunne du bruge scriptet ?-)
Avatar billede jamiros Novice
22. juni 2005 - 17:00 #25
How goes?
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