2010-05-18 187 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