6

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

4

6 回答 6

9

当您的验证器启用 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
}
于 2010-05-18T06:52:17.710 回答
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>

如果您不想立即获得反馈,请删除“*”...<asp:validationsummary>当您提交表单时,错误消息会显示在控件中。

于 2010-05-18T17:38:53.967 回答
2

通常它仅在您输入文本时出现,再次删除它然后移出文本框。我认为这是设计使然。尝试更改 EnableClientScript 属性。

于 2010-05-18T06:49:39.673 回答
1

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

<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');" />
于 2012-06-14T18:54:25.197 回答
0

您可以设置CausesValidation="False"您不希望对其进行验证的按钮。

<asp:Button ID="btnCancel" runat="server" Text="cancel" CausesValidation="False"
                            onclick="btnCancel_Click"/>
于 2012-08-31T04:43:45.327 回答
-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;
于 2014-11-07T15:58:35.807 回答