我有一个asp.net文件:

  • 3个单选框,必须选择一个
  • 一个必须在其中选择项目的列表框
  • 验证码验证

  • 现在我有4个验证器:
  • 用于收音机盒的CustomValidator
  • 列表框的
  • CustomValidator
    验证码验证(保存在 session 中)的
  • CustomValidator
  • 验证码文本框的
  • RequiredFieldValidator不能为空。

  • 我的问题是订单。
    如果用户尝试发送公式器,并且所有4个验证器都不正确,则仅显示RequiredFieldValidator,因为其他3个在服务器端。
    用户现在认为“哦,只有一个错误”并进行了纠正。
    之后,又发生了另外3个错误,用户对此可能会有些生气-“为什么系统在第一次播放时不告诉我?!”

    那么,如何有一个很好的用户解决方案?

    有没有一种方法可以同时触发服务器端验证,而客户端验证会失败?
    还是有办法在服务器端触发客户端验证?

    (注意!我尝试去掉了RequiredFieldValidator,而是执行了第四个CustomValidator。我们这样做了,我有4个CustomValidator,没有Requ-Field-Val。最终,在发送了公式后,没有CustomValidator将被命中= (我不知道为什么。)

    最佳答案

    一种方法是使用EnableClientScript属性为必需的字段验证器关闭客户端验证。这样您所有的验证都在服务器端进行。

    但是更好的方法(如果可能的话)将是对所有客户端验证都使用客户端验证,即使用ClientValidationFunction属性将自定义js验证逻辑与自定义验证器一起使用-有关此类示例,请参见此article

    10-07 18:43