Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > Web Form validation with 2 forms on a single page

Reply
Thread Tools

Web Form validation with 2 forms on a single page

 
 
iMedia User
Guest
Posts: n/a
 
      11-05-2003
I have a site where I want to use the Web form validators in two separate
forms on a single page. One form allows existing users to log in while the
second one allows new users to register. The problem is that if I use the
Web Form validation tags, it treats them all as one form (ie...if someone is
trying to use the login form, they get an error saying that they have to
enter values in the registration form and vice-versa).

Any ideas on how to handle this?


 
Reply With Quote
 
 
 
 
Mike Moore [MSFT]
Guest
Posts: n/a
 
      11-06-2003
19765604

Hi,

On the client, you need to use a function named ValidatorEnable to turn
specific validators on or off. On the server, you need to override the
Validate event and add code to enable/disable specific validators.

Notice that I'm careful to replicate the enable/disable state of each
validator in the server Validate event to be the same state as it was on
the client. Errors here could cause bugs that are hard to track down.

The following sample uses two text boxes for users to login & two for new
users to sign up. All four have required field validators. (with this
simple example, it would have been more elegant to use just one set of two
text boxes. However, I expect that your login & sign-up sections are
different from each other).

This whole sample has almost no error handling since it's just a sample.
The "broken" mode merely turns on all validators on the server & blocks
almost any activity,


**** CODE-BEHIND

Public Overrides Sub Validate()
RequiredFieldValidator1.Enabled = (Mode.Value = "Broken" Or Mode.Value
= "Login")
RequiredFieldValidator2.Enabled = (Mode.Value = "Broken" Or Mode.Value
= "Login")
RequiredFieldValidator3.Enabled = (Mode.Value = "Broken" Or Mode.Value
= "NewUser")
RequiredFieldValidator4.Enabled = (Mode.Value = "Broken" Or Mode.Value
= "NewUser")
MyBase.Validate()
End Sub



**** ASPX PAGE

<HTML>
<HEAD>
<title>ValidatedLogin1</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5"
name="vs_targetSchema">
<script>

function ToLogin() {
Form1.Mode.value = "Broken"
Form1.Button1.value = "Login";
Form1.Button2.value = "New visitors click here";
Form1.TextBox1.disabled="";
Form1.TextBox2.disabled="";
Form1.TextBox3.disabled="disabled";
Form1.TextBox4.disabled="disabled";
Form1.TextBox1.style.visibility = "";
Form1.TextBox2.style.visibility = "";
Form1.TextBox3.style.visibility = "hidden";
Form1.TextBox4.style.visibility = "hidden";
ValidatorEnable(RequiredFieldValidator1, true);
ValidatorEnable(RequiredFieldValidator2, true);
ValidatorEnable(RequiredFieldValidator3, false);
ValidatorEnable(RequiredFieldValidator4, false);
Form1.TextBox3.value="";
Form1.TextBox4.value="";
Form1.Mode.value = "Login"
}

function ToNewUser() {
Form1.Mode.value = "Broken"
Form1.Button1.value = "Click here if you already have an account";
Form1.Button2.value = "Register new name and password";
Form1.TextBox1.disabled="disabled";
Form1.TextBox2.disabled="disabled";
Form1.TextBox3.disabled="";
Form1.TextBox4.disabled="";
Form1.TextBox1.style.visibility = "hidden";
Form1.TextBox2.style.visibility = "hidden";
Form1.TextBox3.style.visibility = "";
Form1.TextBox4.style.visibility = "";
ValidatorEnable(RequiredFieldValidator1, false);
ValidatorEnable(RequiredFieldValidator2, false);
ValidatorEnable(RequiredFieldValidator3, true);
ValidatorEnable(RequiredFieldValidator4, true);
Form1.TextBox1.value="";
Form1.TextBox2.value="";
Form1.Mode.value = "NewUser"
}

function LoginClick() {
if (Form1.Mode.value = "Broken")
ToLogin();
if (Form1.Mode.value = "NewUser")
ToLogin();
if (Form1.Mode.value = "Login")
{
if (typeof(Page_ClientValidate) == 'function')
{
Page_ClientValidate();
if (Page_IsValid)
Form1.submit();
}
else
{
Form1.submit()
}
}
}

function NewUserClick() {
if (Form1.Mode.value = "Broken")
ToNewUser();
if (Form1.Mode.value = "Login")
ToNewUser();
if (Form1.Mode.value = "NewUser")
{
if (typeof(Page_ClientValidate) == 'function')
{
Page_ClientValidate();
if (Page_IsValid)
Form1.submit();
}
else
{
Form1.submit()
}
}
}
</script>
</HEAD>
<body onload="ToLogin();">
<form id="Form1" method="post" runat="server">
<P><INPUT id="Mode" type="hidden" name="Mode" runat="server">
<br>
<asp:textbox id="TextBox1"
runat="server"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator1" runat="server"
ErrorMessage="RequiredFieldValidator"
ControlToValidate="TextBox1"></asp:requiredfieldvalidator><BR>
<asp:textbox id="TextBox2"
runat="server"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator2" runat="server"
ErrorMessage="RequiredFieldValidator"
ControlToValidate="TextBox2"></asp:requiredfieldvalidator><BR>
<INPUT id="Button1" type="button" value="Button" name="Button1"
onclick="LoginClick();"><BR>
<hr>
<BR>
<INPUT id="Button2" type="button" value="Button" name="Button2"
onclick="NewUserClick();"><BR>
<asp:textbox id="TextBox3"
runat="server"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator3" runat="server"
ErrorMessage="RequiredFieldValidator"
ControlToValidate="TextBox3"></asp:requiredfieldvalidator><BR>
<asp:textbox id="TextBox4"
runat="server"></asp:textbox><asp:requiredfieldvalidator
id="RequiredFieldValidator4" runat="server"
ErrorMessage="RequiredFieldValidator"
ControlToValidate="TextBox4"></asp:requiredfieldvalidator>
<P></P>
<P></P>
</form>
</body>
</HTML>




Thank you, Mike
Microsoft, ASP.NET Support Professional

Microsoft highly recommends to all of our customers that they visit the
http://www.microsoft.com/protect site and perform the three straightforward
steps listed to improve your computer's security.

This posting is provided "AS IS", with no warranties, and confers no rights.

--------------------
> From: "iMedia User" <(E-Mail Removed)>
> Subject: Web Form validation with 2 forms on a single page
> Date: Wed, 5 Nov 2003 07:55:28 -0500
> Lines: 10
> X-Priority: 3
> X-MSMail-Priority: Normal
> X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
> X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
> Message-ID: <(E-Mail Removed)>
> Newsgroups: microsoft.public.dotnet.framework.aspnet
> NNTP-Posting-Host: bi01p1.nc.us.ibm.com 129.33.49.251
> Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFTN GP12.phx.gbl
> Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework.aspnet:188679
> X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
>
> I have a site where I want to use the Web form validators in two separate
> forms on a single page. One form allows existing users to log in while the
> second one allows new users to register. The problem is that if I use the
> Web Form validation tags, it treats them all as one form (ie...if someone

is
> trying to use the login form, they get an error saying that they have to
> enter values in the registration form and vice-versa).
>
> Any ideas on how to handle this?
>
>
>


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Distinguishing between two forms on a single page for validation Maziar Aflatoun ASP .Net 2 09-13-2004 12:56 AM
Form Validation Problem...Persisiting form fields on validation failure. bnp Javascript 4 05-12-2004 12:16 PM
ASP.NET Web Forms Validation Controls are Server-Side or Client-Side Validation? Matt ASP .Net 14 01-30-2004 09:15 AM
Web form validation vs object validation Colin Basterfield ASP .Net 1 11-29-2003 12:10 AM
Re: Patch - two server forms on single web page Paul Wilson [MVP] ASP .Net 0 06-25-2003 02:07 AM



Advertisments