2011-09-06 80 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--