如何在不提交的情况下触发ASP.NET客户端验证?

时间:2011-01-17 18:29:26

标签: asp.net webforms client-side-validation lost-focus

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

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

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

由于

更新

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

5 个答案:

答案 0 :(得分:3)

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

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

如果您使用正则表达式验证器,可以从this website

中选择它们

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

请确保您的客户端函数具有sender和args参数。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

简而言之,装饰您的模型,现在Asp.Net 4.5支持数据注释 在这里查看我的答案.. Client side webform validations

相关问题