我有像这样的radiobutton列表;
<asp:RadioButtonList ID="RadioButtonFirm" runat="server" RepeatDirection="Horizontal">
<asp:ListItem id="option1" runat="server" Value="Firm Code" />
<asp:ListItem id="option2" runat="server" Value="Firm Name" />
</asp:RadioButtonList>
还有一个asp:按钮控件
<asp:Button ID="btnSearchFirm" runat="server" OnClientClick="Validate();" Text="search" OnClick="btnSearchFirm_Click" />
和文本框
<asp:TextBox ID="txtCriteria" Width="120px" runat="server"></asp:TextBox>
如果我从单选按钮中选择固定代码,用户只选择数字值到txtCriteria文本框,否则可以输入字符串。如何验证?
答案 0 :(得分:0)
有几种方法可以做到这一点,但无论您选择哪种方式,验证客户端和服务器端都是明智的(如果有任何篡改等客户端)
对于您的方案,CustomValidator控件看起来是合理的选择,请参阅 http://msdn.microsoft.com/en-us/library/9eee01cx%28v=vs.71%29.aspx
基本上你有一个客户端JS函数设置arguments.IsValid,如果txtCriteria中的值是正确的类型,基于RadioButtonFirm的选定值。如果是,则回发将触发,您可以继续在OnServerValidate方法中验证它的服务器端
答案 1 :(得分:0)
有很多方法可以做到这一点:
仅允许用户在文本框中输入数字。这是与示例的链接。当然,您还必须在输入字符时添加条件。 jQuery: what is the best way to restrict "number"-only input for textboxes? (allow decimal points)
让他们输入他们想要的任何内容并在回发后进行服务器端验证。
允许他们输入他们想要的任何内容,并在点击按钮时使用jquery进行客户端验证。
您可以使用单选按钮选择中的jquery隐藏和显示数字和字符串文本框,并在数字文本框中添加验证器。
无论您选择做什么,始终要确保始终进行服务器端验证,以确保数据库中的任何数据都是有效的。另一个原因是,用户可以禁用他们的javascript(虽然不是很常见)或者是屏幕阅读器的网站基本版本,因此您的客户端验证将被禁用。
答案 2 :(得分:-1)
向页面添加正则表达式验证器控件。让它隐身。当您选择数字选项时,然后在后面的代码中使此正则表达式验证器控件可见,当您选择其他选项时,请确保再次隐藏它。现在,当您单击按钮时(选择数字选项时),它将触发正则表达式(仅检查数值。