/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Problemer med validering af data fra form
Fra : Jesper Stocholm


Dato : 19-11-02 11:01

Jeg har følgende stump script, som jeg har skrevet til at validere
input i en form:

function validateLogin(strEmail,strPassword) {
   if(strEmail.length == 0 || strPassword.length == 0) {
   
      alert('Du skal angive både en emailadresse og et password for at logge ind.');
      if(strEmail.length == 0 && strPassword.length > 0) {
         document.forms[1].strEmail.focus();
      }
      if(strEmail.length > 0 && strPassword.length == 0) {
         document.forms[1].strPassword.focus();
      }
      if(strEmail.length == 0 && strPassword.length == 0) {
         document.forms[1].strEmail.focus();
      }
      
      return false; //dette skulle gerne stoppe submit af formen
   }
}

Det kaldes i formen som

onsubmit="validateLogin(document.forms[1].strEmail.value,document.forms[1].strPassword.value);"

Idéen er jo, at der ved fejlagtig indtastning promptes for fejl,
og submit af formularen stoppes. Der er ingen problemer med at
fortælle brugeren, at det ene eller det andet er forkert, men
selvom der er en fejl, så submittes formen alligevel.

Hvor fejler jeg i mit script ?



--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

 
 
Jens Gyldenkærne Cla~ (19-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-11-02 11:18

Jesper Stocholm skrev:

> Jeg har følgende stump script, som jeg har skrevet til at
> validere input i en form:

Det troede jeg man kunne få .net til


> function validateLogin(strEmail,strPassword) {
> if(strEmail.length == 0 || strPassword.length == 0) {
>
   [alert x 3]
>
> return false; //dette skulle gerne stoppe submit af
> formen
> }
> }

Jeg ville bruge en variabel som returneres til sidst i scriptet
uanset resultatet af valideringstjek. De forskellige tjek kan så
sætte denne variabel. Noget i stil med.

function validateLogin(strEmail, strPassword) {
   var altOK = true;
   var strErr = "";

   if (strEmail.length == 0) {
       altOK = false;
       strErr += "Du skal indtaste en emailadresse\n";
   }

   if (strPassword.length == 0 {
       altOK = false;
       strErr += "Du skal indtaste et password\n";
   }
   
   return altOK;        
}


> Hvor fejler jeg i mit script ?

Jeg er langt fra sikker på at det afhjælper dit problem - men det
er måske et forsøg værd.


--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jesper Stocholm (19-11-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 19-11-02 12:47

Jens Gyldenkærne Clausen wrote :

> Jesper Stocholm skrev:
>
>> Jeg har følgende stump script, som jeg har skrevet til at
>> validere input i en form:
>
> Det troede jeg man kunne få .net til

det kan man også ... men jeg er irriteret over, at den insisterer på, at
sætte en language=""-attribut i <script>-elementet, og denne attribut er
ikke længere valid. Derfor bruger jeg ikke clientside formvalidering.
Derudover er det projekt jeg arbejder på pt i reg. ASP, så trist nok er
det slet ikke muligt :|

> function validateLogin(strEmail, strPassword) {
> var altOK = true;
> var strErr = "";
>
> if (strEmail.length == 0) {
> altOK = false;
> strErr += "Du skal indtaste en emailadresse\n";
> }
> if (strPassword.length == 0 {
> altOK = false;
> strErr += "Du skal indtaste et password\n";
> }
> return altOK;
> }
> Jeg er langt fra sikker på at det afhjælper dit problem - men det
> er måske et forsøg værd.

det er til gengæld en god idé at trimme det lidt, men da jeg ikke lige
umiddelbart kunne få det til at virke korrekt, så røg det ned ad
prioriteringsstigen.



--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

Chrisser (19-11-2002)
Kommentar
Fra : Chrisser


Dato : 19-11-02 11:30

"Jesper Stocholm" <jespers@stocholm.invalid> skrev i en meddelelse
news:Xns92CB7006ACDAEspamstocholmdk@130.226.1.34...
> Jeg har følgende stump script, som jeg har skrevet til at validere
> input i en form:
>
> function validateLogin(strEmail,strPassword) {
> if(strEmail.length == 0 || strPassword.length == 0) {
>
> alert('Du skal angive både en emailadresse og et password for at logge
ind.');
> if(strEmail.length == 0 && strPassword.length > 0) {
> document.forms[1].strEmail.focus();
> }
> if(strEmail.length > 0 && strPassword.length == 0) {
> document.forms[1].strPassword.focus();
> }
> if(strEmail.length == 0 && strPassword.length == 0) {
> document.forms[1].strEmail.focus();
> }
>
> return false; //dette skulle gerne stoppe submit af formen
> }
> }
>
> Det kaldes i formen som
>
>
onsubmit="validateLogin(document.forms[1].strEmail.value,document.forms[1].s
trPassword.value);"
>
> Idéen er jo, at der ved fejlagtig indtastning promptes for fejl,
> og submit af formularen stoppes. Der er ingen problemer med at
> fortælle brugeren, at det ene eller det andet er forkert, men
> selvom der er en fejl, så submittes formen alligevel.
>
> Hvor fejler jeg i mit script ?
>
Plejer man ikke at sige:
onsubmit="return
validateLogin(document.forms[1].strEmail.value,document.forms[1].strPassword
..value);"
- hvis funktionen returnerer false, så returnerer onsubmit false og formen
submittes derved ikke.


Chrisser




Jesper Stocholm (19-11-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 19-11-02 12:54

Chrisser wrote :

> Plejer man ikke at sige:
> onsubmit="return
> validateLogin(document.forms[1].strEmail.value,document.forms[1].strPas
> sword .value);"

og det var lige præcist, hvad jeg manglede ... mange tak.



--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

Chrisser (19-11-2002)
Kommentar
Fra : Chrisser


Dato : 19-11-02 13:48


"Jesper Stocholm" <jespers@stocholm.invalid> skrev i en meddelelse
news:Xns92CB833CA1D2Espamstocholmdk@130.226.1.34...
> Chrisser wrote :
>
> > Plejer man ikke at sige:
> > onsubmit="return
> > validateLogin(document.forms[1].strEmail.value,document.forms[1].strPas
> > sword .value);"
>
> og det var lige præcist, hvad jeg manglede ... mange tak.
>
>
>
Det var så lidt, den er nem at glemme, så skal jeg til gengæld huske at
beskære lidt bedre/mere næste gang jeg svarer på et indlæg - det så sg* lidt
dumt ud da den kom i luften ;-(

- selv om der ikke er indløbet nogle kommentarer endnu

Chrisser



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste