来自radiobuttonlist选择的数字文本框控件

时间:2012-03-16 07:59:48

标签: c# javascript jquery asp.net

我有像这样的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文本框,否则可以输入字符串。如何验证?

3 个答案:

答案 0 :(得分:0)

有几种方法可以做到这一点,但无论您选择哪种方式,验证客户端和服务器端都是明智的(如果有任何篡改等客户端)

对于您的方案,CustomValidator控件看起来是合理的选择,请参阅 http://msdn.microsoft.com/en-us/library/9eee01cx%28v=vs.71%29.aspx

基本上你有一个客户端JS函数设置arguments.IsValid,如果txtCriteria中的值是正确的类型,基于RadioButtonFirm的选定值。如果是,则回发将触发,您可以继续在OnServerValidate方法中验证它的服务器端

答案 1 :(得分:0)

有很多方法可以做到这一点:

  1. 仅允许用户在文本框中输入数字。这是与示例的链接。当然,您还必须在输入字符时添加条件。 jQuery: what is the best way to restrict "number"-only input for textboxes? (allow decimal points)

  2. 让他们输入他们想要的任何内容并在回发后进行服务器端验证。

  3. 允许他们输入他们想要的任何内容,并在点击按钮时使用jquery进行客户端验证。

  4. 您可以使用单选按钮选择中的jquery隐藏和显示数字和字符串文本框,并在数字文本框中添加验证器。

  5. 无论您选择做什么,始终要确保始终进行服务器端验证,以确保数据库中的任何数据都是有效的。另一个原因是,用户可以禁用他们的javascript(虽然不是很常见)或者是屏幕阅读器的网站基本版本,因此您的客户端验证将被禁用。

答案 2 :(得分:-1)

向页面添加正则表达式验证器控件。让它隐身。当您选择数字选项时,然后在后面的代码中使此正则表达式验证器控件可见,当您选择其他选项时,请确保再次隐藏它。现在,当您单击按钮时(选择数字选项时),它将触发正则表达式(仅检查数值。