如何允许用户在文本框中只输入0或1.我正在使用C#.net。 textbox的maxlength是1.我想在正则表达式中添加验证表达式。我不想使用javascript。
答案 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之外的其他内容,而是验证程序,可以在客户端和服务器端使用。
我会使用RangeValidator
与Type="Integer"
相对应的MinimumValue
和MaximumValue
代替。
<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
可能更适合此任务。