0

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

4

3 回答 3

2

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

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

还有一种更好的方法,它不使用 JS 来满足您的需求:使用复选框。

于 2012-12-17T08:05:56.660 回答
0

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

您不想仅使用 javascript 来防止用户输入 0 或 1 以外的内容,而是可以在客户端和服务器端使用 的验证器。

我会使用RangeValidatorwithType="Integer"和适当的MinimumValueandMaximumValue 来代替。

<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控件来防止用户跳过输入控件。

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

于 2012-12-17T08:36:24.013 回答
0

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

int value;
bool isValidNumber = (Int32.TryParse(myTextBox.Text, out value) && (value == 0 || value == 1));
于 2012-12-17T08:12:42.987 回答