2011-09-06 83 views
4

有除了火狐6.驗證一個下拉列表,在火狐6.一個RequiredFieldValidator我在所有瀏覽器的代碼的問題,ASP.NET的RequiredFieldValidator不DropDownList的火狐6

這裏是發生了什麼,我選擇工作下拉列表中的值不是默認值,然後單擊該按鈕。即使我選擇了不同的字段,也會返回錯誤消息,這意味着驗證失敗。如果我再次這樣做,並從下拉列表中選擇相同的值,然後單擊按鈕。沒有錯誤消息,它通過驗證。這隻會在你第一次選擇一個值時失敗,並且只能在Firefox 6中使用。

另一個例子,加載頁面,選擇一個值,再次選擇相同的值,點擊按鈕,然後通過。 WTH?

<asp:dropdownlist id="ddlHour" cssclass="select select-small" runat="server"> 
    <asp:listitem value="" text="" selected="true"></asp:listitem> 
    <asp:listitem value="1">1</asp:listitem> 
    <asp:listitem value="2">2</asp:listitem> 
</asp:dropdownlist> 
<asp:requiredfieldvalidator id="rfvHour" initialvalue="" controltovalidate="ddlHour" errormessage="Please select an hour" display="none" validationgroup="banquetForm" runat="server"/> 

而且我在窗體中有一個具有相同驗證組的按鈕。任何幫助表示讚賞,謝謝。

+1

你見過? http://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx –

+0

我注意到'Display'設置爲'none'。你是否在某處改變了「Dynamic」或「Static」? –

回答

-1

嘗試使用以下:

<asp:dropdownlist id="ddlHour" cssclass="select select-small" runat="server"> 
    <asp:listitem value="0" Text="" selected="true"></asp:listitem> 
    <asp:listitem value="1">1</asp:listitem> 
    <asp:listitem value="2">2</asp:listitem> 
</asp:dropdownlist> 
     <asp:RequiredFieldValidator ID="HourValidate" runat="server" ControlToValidate="ddlHour" ErrorMessage="Please select an hour" InitialValue="0"></asp:RequiredFieldValidator> 
+0

這不能解決問題。 – j00b

+0

抱歉,我粘貼了錯誤的東西。 :)嘗試我剛添加的新代碼。 – Damon

-2

糾正我,如果我錯了,但我認爲你使用了錯誤的驗證。默認情況下,一個下拉菜單總是有一個值,所以要求它是沒有意義的。我認爲你想要做的就是比較它,以確保它不是第一選擇。本頁面顯示瞭如何做到這一點的快速演示。

http://forums.asp.net/t/1188035.aspx/1

+0

這也導致了前面提到的相同問題,即驗證不會僅通過Firefox。 – j00b

+0

您可以將空白選項添加到導致空值或空值的下拉列表中。例如,「選擇...」或「選擇...」的值爲空。 – ctorx

-1

如何設置所需的字段校驗與DropDownList

假設你在你的下拉列表這個項目..

 DropDownList1.Items.Add(new ListItem("--Select--","0")); 
     DropDownList1.Items.Add(new ListItem("Kaushal","1")); 
     DropDownList1.Items.Add(new ListItem("Naresh","2")); 
     DropDownList1.Items.Add(new ListItem("Pankaj", "3")); 

然後 - :設置requiredfieldvalidator的的ControlToValidate財產改爲DropDownlist1,並將requiredfieldvalidatorInitialValue財產設置爲0,因爲這將是您可以在上面顯示的值
--Select--