2011-06-30 17 views
0

我有3个文本框在页面上。我如何设置一个验证器(以及什么样的验证器?)来验证客户端的每个TextBoxes?一个asp.net验证器的几个文本框

第一个文本框必须包含只有1-3位数,第二 - 数字无限多,第三 - 0-5位数

+0

你可以使用一个CustomValidator,但为什么你不使用三个不同的验证器,每个TextBox一个? –

+0

我想同时只显示一条错误消息。 – Alexandre

+0

@Alex使用验证摘要控件显示一个错误消息。在下面检查我的答案。 – Jayesh

回答

2

这将是更好地使用不同的文本框不同的验证。 使用3个验证器,每个显示消息为*符号。

然后使用Validation Summary控件为所有人打印单条消息,因为您希望为所有消息显示单条消息。请参考以下链接:MSDN Validation Summary

入住这也太:Validation Summary to work with client-side validations

+0

这很好,如果他只有表单上的这3个字段 - 我假设(也许不正确)他想要这些字段的一条消息,但表单上的其他字段仍然会有自己的消息。在这种情况下,将所有内容组合成一个摘要消息将是有限的 – BonyT

+0

@BonyT正如他在问题中所说的:验证每个TextBox的验证器。所以他只需要一个验证器就可以显示所有的文本框。进一步在他说的问题的评论中:我想显示一个通用的错误消息。这就像“格式不正确” – Jayesh

+0

我说过我的假设可能不正确! – BonyT

0

你可以使用一个CustomValidator,但我宁愿使用三种不同的验证器,一个用于每个文本框。

可以将CustomValidator的ControlToValidate属性留空。通过这种方式,您可以同时验证多个控件。

1

你的表达式将是沿着线:

[0-9] {1,3}

[0-9] +

[0-9] {0,5 }

更新以下进一步信息:

你可以从每个文本框的值组合成一个逗号分隔值,然后验证使用[0-9] {0,3},[0-9] + ,[0-9] {1,5}表达。

要么使用javascript将值复制到隐藏文本框字段与它自己的正则表达式验证使用上述表达式,或者只是手动执行验证。

例如使用jquery

$('#hiddenCombinedField').val($('#field1').val()+','+$('#field2').val()+','+$('#field3').val()); 

在您调用窗体上的验证之前运行此操作。

另请参阅http://speckyboy.com/2009/12/17/10-useful-jquery-form-validation-techniques-and-tutorials-2/了解一些有用的参考资料。