Avatar billede Slettet bruger
18. november 2003 - 13:33 Der er 14 kommentarer og
1 løsning

Validering af min form også?

Hejsa.

Jeg har også en form, som jeg ønsker en validering på.

Der er 5 felter:
1: id="navn"
Skal bare valideres som et felt, hvori der mindst skal skrives 2 karakterer.
2: id="email"
Feltet skal bare springes over, da Jmail v. 4.2 har en indbygget validering for dette felt.
3: id="besked"
Skal bare valideres som et felt, hvori der mindst skal skrives 1 karakterer.
4: id="egetnavn"
Skal bare valideres som et felt, hvori der mindst skal skrives 2 karakterer.
5: id="egenmail"
Skal valideres som et felt, hvori der skal indtastes en gyldig Email-adresse.

Koden skriver jeg nedenunder, da den er lidt lang.  :-)
Avatar billede Slettet bruger
18. november 2003 - 13:35 #1
<div id="anbefal">

<form name="form1" method="post" action="anbefalsend.asp">

<table class="handling" cellspacing="0" cellpadding="0" width="220" border="0">
    <tr align="center">
        <td class="form1">
        Anbefal til en ven:
        </td>
    </tr>
    <tr>
        <td class="form2">
       
<input type="text"
id="navn"
name="navn"
value="klik her og skriv modtagerens navn."
tabindex="1"
style="width: 220px; height: 17px; font-family: verdana, helvetica, arial, sans-serif; font-size: 10px; border: 1px, solid, #000000; background-color: #f9f9f9;"
maxlength="75"
onfocus="this.style.border='1px solid #FF9900';this.style.backgroundColor='#ffffff';this.style.height='17px';this.style.width='220px';if(this.value==this.defaultValue)this.value='';"
onblur="this.style.border='1px inset';this.style.backgroundColor='#f9f9f9';this.style.height='17px';this.style.width='220px';if(this.value=='')this.value=this.defaultValue;">
       
        <span class="tiny">&nbsp;</span>
       
<input type="text"
id="email"
value="Klik her og skriv modtagerens e-mail."
name="email"
tabindex="2"
style="width: 220px; height: 17px; font-family: verdana, helvetica, arial, sans-serif; font-size: 10px; border: 1px, solid, #000000; background-color: #f9f9f9;"
maxlength="75"
onfocus="this.style.border='1px solid #FF9900';this.style.backgroundColor='#ffffff';this.style.height='17px';this.style.width='220px';if(this.value==this.defaultValue)this.value='';"
onblur="this.style.border='1px inset';this.style.backgroundColor='#f9f9f9';this.style.height='17px';this.style.width='220px';if(this.value=='')this.value=this.defaultValue;">

        </td>
    <tr/>
    <tr>
        <td class="form2">       
<textarea name="besked"
id="besked"
cols="20"
rows="5"
tabindex="3"
wrap="physical"
onKeyDown="checkMaxInput(this.form)" onKeyUp="checkMaxInput(this.form)"
style="width: 220px; height: 60px; font-family: verdana, helvetica, arial, sans-serif; font-size: 10px; border: 1px, solid, #000000; background-color: #f9f9f9;"
maxlength="300"
onfocus="this.style.border='1px solid #FF9900';this.style.backgroundColor='#ffffff';if(this.value==this.defaultValue)this.value='';"
onblur="this.style.border='1px inset';this.style.backgroundColor='#f9f9f9';if(this.value=='')this.value=this.defaultValue;">Klik her og skriv en besked på højst 300 tegn:</textarea>


<span class="alm">Der er </span>
<input "readonly" type="text" name="remLen" size="2" maxlength="3" value="300" class="readonlyinput" style="height: 16px;"><span class="alm"> tegn tilbage.</span></input>

        </td>
    </tr>
    <tr>
        <td class="form2">
   
<input type="text"
id="egetnavn"
value="Klik her og skriv dit eget navn."
name="egetnavn"
tabindex="4"
style="width: 220px; height: 17px; font-family: verdana, helvetica, arial, sans-serif; font-size: 10px; border: 1px, solid, #000000; background-color: #f9f9f9;"
maxlength="75"
onfocus="this.style.border='1px solid #FF9900';this.style.backgroundColor='#ffffff';this.style.height='17px';this.style.width='220px';if(this.value==this.defaultValue)this.value='';"
onblur="this.style.border='1px inset';this.style.backgroundColor='#f9f9f9';this.style.height='17px';this.style.width='220px';if(this.value=='')this.value=this.defaultValue;">

        <span class="tiny">&nbsp;</span>

<input type="text"
id="egenmail"
name="egenmail"
value="Klik her og skriv din egen e-mail."
tabindex="5"
style="width: 220px; height: 17px; font-family: verdana, helvetica, arial, sans-serif; font-size: 10px; border: 1px, solid, #000000; background-color: #f9f9f9;"
maxlength="75"
onfocus="this.style.border='1px solid #FF9900';this.style.backgroundColor='#ffffff';this.style.height='17px';this.style.width='220px';if(this.value==this.defaultValue)this.value='';"
onblur="this.style.border='1px inset';this.style.backgroundColor='#f9f9f9';this.style.height='17px';this.style.width='220px';if(this.value=='')this.value=this.defaultValue;">

        </td>
    </tr>   
    <tr>
        <td class="form2" align="center">
<input type="submit" class="knapper" value="Send" style="width: 70px; height: 18px; cursor: hand" tabindex="6">
&nbsp;&nbsp;&nbsp;
<input type="reset" class="knapper" value="Forfra" name="button" style="width: 70px; height: 18px; cursor: hand" tabindex="7">
        </td>
    </tr>
</table>

        </td>
    </tr>
</table>

</form>

</div>
Avatar billede roenving Novice
18. november 2003 - 13:47 #2
<script type="text/javascript">

function validering(f){
  if(2>f.navn.value.length)    {       
    alert('Du skal udfylde feltet med navn!\nMindst to tegn.');
    f.navn.focus();
    return false;
  }

  if(1>f.besked.value.length)    {       
    alert('Du skal udfylde feltet med din besked!\nMindst et tegn.');
    f.besked.focus();
    return false;
  }

  if(2>f.egetnavn.value.length)    {       
    alert('Du skal udfylde feltet med dit eget navn!\nMindst to tegn.');
    f.egetnavn.focus();
    return false;
  }

  var regexp = /^\w{1}[\w\.\-]*@\w{1}[\w\-]*\.\w{2}\w*$/i;
  tekst=f.egenmail.value.toLowerCase();
  if (!regexp.test(tekst)){
      alert ("Der skal stå en gyldig e-mail adresse i din egen mail");
      f.egenmail.focus();
      return false;
  }
</script>

-- og så:

<form name="form1" method="post" action="anbefalsend.asp" onsubmit="return validering(this);">
Avatar billede Slettet bruger
18. november 2003 - 13:55 #3
Øv, den virker ikke...

Måske der er noget i min kode, som "modarbejde" dit ellers fine script?

Test selv her på:
http://www.extend.dk/test1/anbefal.asp
Avatar billede grunken Nybegynder
18. november 2003 - 13:58 #4
prøv at placere en en tuborg('}') mere nede i bunden af scriptet
Avatar billede roenving Novice
18. november 2003 - 14:03 #5
Hov, du har jo ret grunken, der var jeg lidt for hurtig i min bortskæring før klippe/klistre !-|
Avatar billede Slettet bruger
18. november 2003 - 14:05 #6
WOW! Jeps, dér var den!

Lækkert! Tak!

Jeg har godt nok noget text stående i value-feltet, som gør at den validerer uden at man har skrevet noget i feltet.
Det er der ikke noget at gøre noget ved, vel? Eller...?

Hovsa! Skriv lige et svar, I to, ikke?
SÅ må jeg jo fordele de voldsomt mange points imellem jer begge, da I begge to havde noget relevant at tilføje.
Måske jeg kan forhøje points...?
Avatar billede grunken Nybegynder
18. november 2003 - 14:09 #7
if(1>f.besked.value.length || f.besked.value==f.besked.defaultValue){ 
..
..
..
}

Jeg skal ikke nikke nej have points for det ;)
Avatar billede roenving Novice
18. november 2003 - 14:10 #8
Jo, som eksempel:

  if(2>f.navn.value.length||f.navn.value==f.navn.defaultValue){

-- og ønsker du at forhøje points skal du op under Funktioner og finde Afsæt flere points !-)

-- velbekomme '-)
Avatar billede Slettet bruger
18. november 2003 - 14:15 #9
Altså, I to java-script-hajer! I er da nogle værre nogle.  :-))

Hvor i alverden putter jeg denne if-sætning ind henne? Husk på, at jeg er elendig til java-script.  :-/

Og jo, grunken. Selvfølgelig skal du have lidt points for ulejligheden.
Også selvom at vi alle nærmest svømmer i points, men det er mest for anstændighedens skyld, synes jeg.  :-)
Avatar billede grunken Nybegynder
18. november 2003 - 14:20 #10
du skifter bare de eksisterende "if sætninger" ud med dem der er vist ;)

og nej INGEN points her, roenving var først og bedst ;)
Avatar billede roenving Novice
18. november 2003 - 14:20 #11
Find de linjer, hvor den pågældende type check findes og udvid dem med det, vi har fyldt ekstra ind:

||f.navn.value==f.navn.defaultValue
Avatar billede grunken Nybegynder
18. november 2003 - 14:21 #12
forresten, så er et tak bedre end points ;D

if(2>f.navn.value.length||f.navn.value==f.navn.defaultValue){
    alert('Du skal udfylde feltet med navn!\nMindst to tegn.');
    f.navn.focus();
    return false;
  }
Avatar billede Slettet bruger
18. november 2003 - 14:25 #13
Ok ok ok... I er 2 imod 1...  :-)

Nåååe, nu er jeg med, vedr. den if-sætning! (Siger jeg højt, og banker hovedet hårdt ned i bordet!)  :-)))

-->Grunken:
Ok, 0 points. MEN: På den betingelse, at jeg kan hjælpe dig en anden gang!

Og mange tak til jer begge to!
Avatar billede grunken Nybegynder
18. november 2003 - 14:30 #14
velbekomme sagde manden ;)

og mht. hjælp, så kommer det sikkert, jeg har mange uløste mysterier ;-)
Avatar billede roenving Novice
18. november 2003 - 14:34 #15
-- og jeg 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