Solved

Have validation start on same position on page ASP.NET 2.0

Posted on 2008-06-26
5
168 Views
Last Modified: 2011-10-19
I want to have my validation stacked on top of eachother.

What happens here is that when no email is entered it displays the message fine.. but when the email is not valid is displays the message after the "RequiredFieldValidator" message. which looks stupid.

Does anyone know how to fix this?

Thanks,
<table>
    <tr>
        <td style="text-align: right">
            <asp:Label ID="lblEmail" runat="server" AssociatedControlID="txtEmail"></asp:Label><span style="color:Red">*</span>
        </td>
        <td>
            <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="reqValEmail" runat="server" ControlToValidate="txtEmail"
                ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
            <asp:RegularExpressionValidator ID="regValEmail" runat="server" ControlToValidate="txtPayPalAcc"
                ErrorMessage="RegularExpressionValidator" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
        </td>
    </tr>
</table>

Open in new window

0
Comment
Question by:copyPasteGhost
  • 2
  • 2
5 Comments
 
LVL 1

Expert Comment

by:ryanfinn1979
ID: 21873625
Your RegularExpressionValidator is validating the wrong control - it is currently validating txtPayPalAcc instead of txtEmail.

It's probably a good idea to choose a more user friendly error message such as "Please enter a valid email address." instead of "RegularExpressionValidator".
<table>
    <tr>
        <td style="text-align: right">
            <asp:Label ID="lblEmail" runat="server" AssociatedControlID="txtEmail"></asp:Label><span style="color:Red">*</span>
        </td>
        <td>
            <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
        </td>
        <td>
            <asp:RequiredFieldValidator ID="reqValEmail" runat="server" ControlToValidate="txtEmail"
                ErrorMessage="Please enter a valid email address."></asp:RequiredFieldValidator>
            <asp:RegularExpressionValidator ID="regValEmail" runat="server" ControlToValidate="txtEmail"
                ErrorMessage="Please enter a valid email address." ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
        </td>
    </tr>
</table>

Open in new window

0
 
LVL 13

Author Comment

by:copyPasteGhost
ID: 21873683
:) I do. the text is coming from the database. I changed it...

it's still doing the same thing...I included a picture of the problem.

Thanks
email-problem.GIF
0
 
LVL 22

Expert Comment

by:prairiedog
ID: 21875086
Set the "Display" property of the two validators to "Dynamic" to see if it will help.
0
 
LVL 1

Accepted Solution

by:
ryanfinn1979 earned 500 total points
ID: 21875730
Try setting Display="Dynamic" and turning off text wrapping for the column - <td style="white-space: nowrap">
        <table>
            <tr>
                <td style="text-align: right">
                    <asp:Label ID="lblEmail" runat="server" AssociatedControlID="txtEmail"></asp:Label><span
                        style="color: red">*</span>
                </td>
                <td>
                    <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
                </td>
                <td style="white-space: nowrap">
                    <asp:RequiredFieldValidator ID="reqValEmail" runat="server" ControlToValidate="txtEmail"
                        ErrorMessage="Please enter a valid email address." Display="Dynamic"></asp:RequiredFieldValidator><asp:RegularExpressionValidator ID="regValEmail" runat="server" ControlToValidate="txtEmail"
                        ErrorMessage="Please enter a valid email address." ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic"></asp:RegularExpressionValidator>
                </td>
            </tr>
        </table>

Open in new window

0
 
LVL 22

Expert Comment

by:prairiedog
ID: 21875819
So setting "Display=Dynamic" like I said in my post helped?
0

Featured Post

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
Today is the age of broadband.  More and more people are going this route determined to experience the web and it’s multitude of services as quickly and painlessly as possible. Coupled with the move to broadband, people are experiencing the web via …
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question