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

LVL 13
copyPasteGhostAsked:
Who is Participating?
 
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
 
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
 
prairiedogCommented:
So setting "Display=Dynamic" like I said in my post helped?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.