【问题标题】:One asp.net validator for several TextBoxes一个用于多个文本框的 asp.net 验证器
【发布时间】:2011-06-30 10:49:47
【问题描述】:

我在页面上有 3 个文本框。如何设置 一个 验证器(以及验证器的种类?)以验证客户端的每个 TextBox?

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

【问题讨论】:

  • 您可以使用 CustomValidator,但为什么不使用三个不同的验证器,每个 TextBox 一个?
  • 我只想同时显示一条错误消息。
  • @Alex 使用验证摘要控件显示一条错误消息。在下面检查我的答案。
  • 验证摘要在回发后显示错误,不是吗?但我只需要同时显示一条错误消息而无需回发。
  • 当您一次说一个错误时 - 您的意思是在每个有故障的控件旁边 - 您只想针对第一个错误条目显示消息?

标签: javascript asp.net validation


【解决方案1】:

最好为不同的文本框使用不同的验证器。 为每个验证器使用 3 个验证器,并将消息显示为 * 号。

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

也检查一下:Validation Summary to work with client-side validations

【讨论】:

  • 如果他在表单上只有这 3 个字段,那很好 - 我假设(可能不正确)他想要这些字段的一条消息,但表单上的其他字段仍然有自己的消息.在这种情况下,将所有内容合并到一个摘要消息中会受到限制。
  • @BonyT 正如他在问题中所说:一个验证器来验证每个文本框。所以他只需要一个验证器来处理所有的文本框。进一步在问题的 cmets 中,他说:我想显示一个通用错误消息。类似于“格式不正确”
【解决方案2】:

你的表达方式如下:

[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());

在表单上调用 validate 之前运行它。

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

【讨论】:

    【解决方案3】:

    您可以使用CustomValidator,但我更喜欢使用三个不同的验证器,每个文本框一个。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多