[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 188
  • Last Modified:

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

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
copyPasteGhost
Asked:
copyPasteGhost
  • 2
  • 2
1 Solution
 
Ryan FinnCommented:
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
 
copyPasteGhostAuthor Commented:
:) 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
 
prairiedogCommented:
Set the "Display" property of the two validators to "Dynamic" to see if it will help.
0
 
Ryan FinnCommented:
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
 
prairiedogCommented:
So setting "Display=Dynamic" like I said in my post helped?
0

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now