如何让用户只输入0或1?

时间:2012-12-17 08:04:03

标签: asp.net

如何允许用户在文本框中只输入0或1.我正在使用C#.net。 textbox的maxlength是1.我想在正则表达式中添加验证表达式。我不想使用javascript。

3 个答案:

答案 0 :(得分:2)

如果不使用JavaScript,则无法在文本框中实现此目的。 ASP.NET是一种服务器端语言,这意味着它只能在客户端 - 服务器关系的服务器端工作。 JavaScript是一种客户端语言,意味着它直接在用户的浏览器中运行,并在用户正在查看的实际页面上运行。

虽然您可以编写JS来实际阻止用户在非“0”或“1”的框中键入任何内容,但这会激怒您的用户。您还可以编写客户端和服务器端代码,这将验证输入并引发错误。

有一种更好的方法可以使用不符合您需求的JS:使用复选框。

答案 1 :(得分:0)

我同意在这种情况下,复选框最适合这项工作。如果你想使用文本框,为了将来的可扩展性,那么使用javascript是最合适的。 如果你绝对必须在C#中使用它,你可以使用以下内容,但请考虑使用javascript,因为它更快。

int value;
bool isValidNumber = (Int32.TryParse(myTextBox.Text, out value) && (value == 0 || value == 1));

答案 2 :(得分:0)

我通过以下方式理解这个问题:

您不希望仅使用javascript来阻止用户输入除0或1之外的其他内容,而是验证程序,可以在客户端和服务器端使用。

我会使用RangeValidatorType="Integer"相对应的MinimumValueMaximumValue代替。

<asp:RangeValidator id="Range1"
           ControlToValidate="TextBox1"
           MinimumValue="0"
           MaximumValue="1"
           Type="Integer"
           EnableClientScript="false"
           Text="The value must be from 0 to 1!"
           runat="server"/>

注意:如果输入控件为空,则不会调用验证函数并且验证成功。使用RequiredFieldValidator控件可防止用户跳过输入控件。

正如其他人所提到的,CheckBox可能更适合此任务。