5

我在 ASP.NET(WebForms,NOT MVC)中有一个网站,其中有一个调查表,分为几张幻灯片。每张幻灯片都有一个下一张按钮,显然会转换(客户端,不是回发或远程请求)到下一张幻灯片。

在每张幻灯片中,我都有几个带有相关验证器的 ASP.NET 控件。我希望在单击下一个按钮时触发此验证器(或者当每个输入失去焦点时?)。

我记得 ASP.NET 在失去焦点时进行客户端验证,但也许我错了......(我退出 ASP.NET 开发大约 3 年了,所以我不记得了)

谢谢

更新:

当关联的控件失去焦点时,最好让 ASP.NET 触发每个验证器。我记得 ASP.NET 这样做(或者我在做梦?=P)

4

5 回答 5

3

首先,您需要确保所有验证器都具有使用验证器上的“TargetControlID”属性指定的目标控件。

然后,您可以为每页设置一个验证组,并在下一个按钮和控件本身中指定组名称。

如果您使用正则表达式验证器,您可以从本网站选择它们

验证客户端 如果您使用自定义验证器,您可以创建一个客户端函数并使用 ClientValidationFunction 属性在自定义验证器上指定它,并在自定义验证器上设置 EnableclientScript = "true"。

只要确保您的客户端函数具有 sender 和 args 参数即可。

于 2011-01-17T18:39:33.907 回答
2

看起来提供了一个名为Page_ClientValidate的 JavaScript 函数,它应该可以调用以从 JavaScript 手动检查验证。不过我没用过,所以YMMV。

于 2011-01-17T18:36:08.370 回答
1

将所有客户端验证器放入同一个验证组,并使用“下一步”按钮添加相同的验证组。当您单击该按钮时,它将在回发之前自动触发所有验证器。

至于手动触发验证...您也可以使用 ValidatorOnSubmit()。我记得在另一个项目中这样做,但我很难找到代码。

于 2011-01-17T18:36:52.777 回答
0

似乎每当我尝试离开该字段时,在每个验证器上启用“SetFocusOnError”都会触发验证。

于 2011-01-17T22:17:00.593 回答
0

简而言之,装饰你的模型,现在 Asp.Net 4.5 支持数据注释在这里检查我的答案..客户端 webform 验证

于 2017-09-11T07:42:28.513 回答