Avatar billede bongo20 Nybegynder
03. maj 2005 - 06:26 Der er 15 kommentarer og
1 løsning

Validation og CausesValidation

Hej

Jeg har en side hvor en bruger kan oprette sig.
I et af felterne skal indtastes en email adresse.
Til det tekstfelt har jeg knyttet en RegularExpressionValidator, sådan her:

<asp:TextBox id="txtEmail" runat="server" />

<asp:RegularExpressionValidator id="valRegEx" runat="server" ControlToValidate="txtEmail" ValidationExpression=".*@.*\..*" ErrorMessage="Ugyldig e-mail adresse!" display="dynamic"></asp:RegularExpressionValidator>

Det virker fint når man forlader tekstfeltet. Så får man beskeden "Ugyldig e-mail adresse" ved forkert indtastning, men hvis man fortsætter og trykker "Opret" så sker der ingen validering og brugeren oprettes.

På min knap har jeg prøvet at sætte CausesValidation="True" men det hjælper ingenting.

Nogen forslag til hvad der er galt?

:o)
Avatar billede snepnet Nybegynder
03. maj 2005 - 08:59 #1
Er det fordi du ikke har en RequiredFieldValidator på feltet også, og dermed tillader at det er blankt ?
Mvh
Avatar billede bongo20 Nybegynder
03. maj 2005 - 09:19 #2
Jeg har ikke noget RequiredFieldValidator på feltet, men felter er netop ikke tomt.

Hvis jeg skriver  sdfsdf"danmark.dk
så bliver den fanget af min RegularExpressionValidator og giver besked om at det er galt, og lader jeg bare teksten stå i feltet og trykker på knappen så synes alt at være i skønneste orden og den fortsætter...
Avatar billede snepnet Nybegynder
03. maj 2005 - 11:18 #3
det er ikke et problem jeg kan genskabe ... hvis jeg laver noget tilsvarende fungerer det helt efter hensigten.
CausesValidation="True" er default på knapper - så det skulle ikke gerne være nødvendigt  for dig at sætte det.

kan du ikke vise det relevante kode fra aspx og cs fil ? - og lige fortælle hvilken browser du bruger ?

mvh
(du bør under alle omstændigheder lave valideringen serverside også... så du skal håndtere at der kommer ikke-valideret data med tilbage)
Avatar billede bongo20 Nybegynder
03. maj 2005 - 11:49 #4
<asp:TableRow style=" height: 30px;">
  <asp:TableCell>
    <asp:Label id="lblEMail" text="Email:" runat="server" style="font-size: 11px;" />
  </asp:TableCell>
  <asp:TableCell>
    <asp:TextBox id="txtEmail" style="width: 175px" runat="server" />
    <asp:RegularExpressionValidator id="valRegEx" runat="server"      ControlToValidate="txtEmail" ValidationExpression=".*@.*\..*" ErrorMessage="Ugyldig e-mail adresse" display="dynamic"></asp:RegularExpressionValidator>
  </asp:TableCell>
</asp:TableRow>

I en anden tabel, men samme form har jeg knappen:

<asp:TableCell>
  <asp:button id="btnSave" runat="server "Text="Opret" />           
</asp:TableCell>
Avatar billede bongo20 Nybegynder
03. maj 2005 - 11:49 #5
Jeg bruger IE 6
Avatar billede snepnet Nybegynder
03. maj 2005 - 11:57 #6
hvis du opretter en helt ny form - og lægger det her ind :

<form id="Form1" method="post" runat="server">
    <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
    <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator"
        ValidationExpression=".*@.*\..*" ControlToValidate="TextBox1"></asp:RegularExpressionValidator><BR>
    <asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
</form>

fungerer det så ?
mvh
Avatar billede bongo20 Nybegynder
03. maj 2005 - 12:05 #7
ja det gør det desværre :o)

Jeg har også lige selv lavet en helt ny side og forsøgt, og det virker fint
Avatar billede snepnet Nybegynder
03. maj 2005 - 12:36 #8
hmmm ... så skulle det jo også kunne bringes til at virke på din eksisterende form.
kører du noget andet javascript på den ?
- eller bliver den eventuelt opbygget meget dynamisk ?
mvh
Avatar billede bongo20 Nybegynder
03. maj 2005 - 12:44 #9
Det opbygges ikke dynamisk men Ja jeg kører også noget javascript idet jeg trykker på knappen.

Den validerer at en checkbox er checked og returnerer true hvis den er checked.
Avatar billede snepnet Nybegynder
03. maj 2005 - 12:46 #10
har du prøvet at lade være med at køre det script - altså sørge for at du ikke få lagt det på knappen ?
(så virker det sikkert)
mvh
Avatar billede bongo20 Nybegynder
03. maj 2005 - 12:58 #11
Ja så virker det faktisk, men jeg kunne jo sådan set godt tænke mig at køre det andet script også.

Nogen ulemper ved f.eks. at smide sådan en validering på onunload() ?
Avatar billede snepnet Nybegynder
03. maj 2005 - 13:02 #12
du skal sørge for at det kører inden der submittes ... hvordan ser den kode ud du bruger til at hooke op på clientside onclick på knappen ?
mvh
Avatar billede bongo20 Nybegynder
03. maj 2005 - 13:04 #13
btnSave.Attributes.Add("onclick", "return Create(); ");
Avatar billede snepnet Nybegynder
03. maj 2005 - 13:21 #14
du kan eventuelt hooke op på submit-eventet :

function Form1_onsubmit() {
    return confirm('blahblah');
}

<form id="Form1" method="post" runat="server" language=javascript onsubmit="return Form1_onsubmit()">

Så får du kørt den kode hvis din validator går igennem.

mvh
Avatar billede bongo20 Nybegynder
03. maj 2005 - 14:56 #15
Det virker simpelthen helt som det bør nu.

Vi bukker og takker.
Smider du et svar snepnet?

:o)
Avatar billede snepnet Nybegynder
03. maj 2005 - 15:27 #16
du får et svar her :o)
mvh
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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