繁体   English   中英

如何验证DropDownList中的选定值?

[英]How do I validate a selected value in a DropDownList?

我希望用户在DropDownList进行有效选择,但我不想将任何选择作为默认选项,因此默认选择的值是-- Select -- 我使用RegularExpressionValidator只接受包含文字逗号的选定值(因为有效项的格式为LastName, FirstName )。

但是,我很困惑如何让验证器查找Selected值! 我真的不想让它成为服务器级验证,如果可能的话,我想保持它像Regex Validator一样简单。

这是代码:

<asp:DropDownList ID="ddNames" runat="server">
</asp:DropDownList>
&nbsp;
<asp:RegularExpressionValidator ID="RegexValidator" runat="server" 
    ControlToValidate="ddNames" ValidationExpression=".*\,.*" 
    ErrorMessage="Select a Valid User">
</asp:RegularExpressionValidator>

下拉值为:

-- Select --
Smith, John B
Jones, Bill
Wilkinson, Harmony
Hull, Cordell
Hill, Faith

有没有办法将验证器瞄准SelectedValue? 如图所示,Validator似乎没有看到控件中的任何值。

我是对的,你想强迫用户做出选择,那个选择应该适合你的regex
如果是这样,您可以轻松地将RequiredFiledValidator类添加到您的dropdown控件中,为其提供的InitialValue属性等于您的-- Select --项值,这样用户将被强制选择不等于-- Select -- ,并且此值将通过RegularExpressionValidator控件进行验证。

来自MSDN:

仅当关联输入控件的值在失去焦点时与此InitialValue匹配时,验证才会失败。 修剪InitialValue属性和输入控件中的字符串以在执行验证之前删除字符串之前和之后的额外空格。

如果输入控件为空,则验证成功。 如果关联的输入控件需要一个值,除了RegularExpressionValidator控件之外,还要使用RequiredFieldValidator控件。

你也应该注意一下RegularExpressionValidator

除非浏览器不支持客户端验证或明确禁用客户端验证(通过将EnableClientScript属性设置为false),否则将执行服务器端和客户端验证

所以你的代码应该是这样的:

<asp:DropDownList ID="ddNames" runat="server">
</asp:DropDownList>
&nbsp;
<asp:RegularExpressionValidator ID="RegexValidator" runat="server" 
    ControlToValidate="ddNames" ValidationExpression=".*\,.*" 
    ErrorMessage="Select a Valid User" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
  ErrorMessage="*" ControlToValidate="ddNames" 
InitialValue="-- Select --" />

你可以使用RequiredFieldValidator。

        <asp:DropDownList ID="ddNames" runat="server">
        </asp:DropDownList>

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
 ErrorMessage="Please select" ControlToValidate="ddNames" 
InitialValue="-- Select --"></asp:RequiredFieldValidator>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM