2010-05-18 129 views
5

之后显示requiredfieldvalidator错误消息,现在,如果移出当前文本框,将显示错误消息。我不想显示它,直到我点击提交按钮。如何在点击提交按钮

回答

8

当您的验证器启用ClientScript时,这是不可能的。 ClientScript默认为验证器启用。您需要通过设置EnableClientScript在源代码中将其禁用为False。

现在在提交按钮的事件处理程序中调用Page.Validate()和Page.IsValid来查看每个验证器是否都通过了测试。

例子:

<asp:RequiredFieldValidator ID="rfvFirstName" runat="server" ControlToValidate="txtFirstName" EnableClientScript="false" Display="Dynamic" SetFocusOnError="true" /> 

Page.Validate(); 
if (!Page.IsValid) 
{ 
    //show a message or throw an exception 
} 
+0

非常感谢你,我想,也许这是我可以做的唯一途径。 – Tony 2010-05-20 00:21:13

1

通常,只有当您输入文字时,才会再次删除它,然后移出文本框。我认为这是设计。尝试更改EnableClientScript属性。

4

在网页上使用一个验证摘要控制地方...

< asp:validationsummary id="valSummary" runat="server" headertext="Validation Errors:" cssclass="ValidationSummary" />

然后验证:

<asp:textbox id="txtPostalCode" runat="server" MaxLength="250" Width="160px" text='<%# Bind("PostalCode") %>'></asp:textbox> 

<asp:requiredfieldvalidator id="reqPostalCode" runat="server" errormessage="Postal code is required." controltovalidate="txtPostalCode">*</asp:requiredfieldvalidator> 

删除“* “如果你不想立即反馈......错误提交表单时,ssage显示在<asp:validationsummary>控件中。

0

将验证程序的forecolor属性设置为页面的背景颜色。然后在提交按钮的onclientclick,CSS的color属性更改为所需的颜色:

<asp:CompareValidator ID="birthdaycheck" runat="server" ErrorMessage="" 
    Text="*Required" ControlToValidate="birthday" ValidationGroup="rfi" 
    Operator="NotEqual" ForeColor="#F3F3E9" /> 


<asp:Button ID="btnFinish" runat="server" Text="Finish" 
    CausesValidation="true" CommandName="MoveComplete" CssClass="navButton" 
    ValidationGroup="rfi" 
    OnClientClick="$('#wizard_birthdaycheck').css('color','red');" /> 
0

您可以为您不希望验证发生的按钮设置CausesValidation="False"

<asp:Button ID="btnCancel" runat="server" Text="cancel" CausesValidation="False" 
          onclick="btnCancel_Click"/> 
-2

试试这个与所需的字段验证一起创建动态单选按钮...

TableRow trow4 = new TableRow(); 
    trow4.Style.Add("width", "100px"); 
    TableCell tcel4 = new TableCell(); 
    Label lb4 = new Label(); 
    lb4.Text = Resources.QcLabelName.Gender; 
    tcel4.Controls.Add(lb4); 
    CSSCell(tcel4); 
    table.Rows.Add(trow4); 
    RadioButtonList rblist = new RadioButtonList(); 
    rblist.ID = "rbtnmalendfemale"; 
    rblist.Items.Add("Male"); 
    rblist.Items.Add("Female"); 
    tcel4.Controls.Add(rblist); 
    trow4.Cells.Add(tcel4); 
    table.Rows.Add(trow4); 
    rblist.Visible = true; 
    RequiredFieldValidator rFV5 = new RequiredFieldValidator(); 
    TableCell tcl46 = new TableCell(); 
    rFV5.ControlToValidate = "rbtnmalendfemale"; 
    rFV5.ErrorMessage = "Gendor Selection Is Mandatory"; 
    rFV5.Style.Add("color", "Red"); 
    rFV5.ID = "Reqfield9"; 
    tcl46.Controls.Add(rFV5); 
    trow4.Cells.Add(tcl46); 
    table.Rows.Add(trow4); 
    rFV5.Visible = true; 
+1

如果您有任何意见或其他提示,您发布的代码正在做什么,这将非常棒。请在以后的帖子中提供一些解释。 – WeSt 2014-11-07 16:03:30