我在ASP.NET中有一个网站(WebForms,不 MVC),其调查表分为几个幻灯片。每张幻灯片都有一个下一个按钮,显然是转换(客户端,不回发或远程请求)到下一张幻灯片。
在每张幻灯片中,我有几个带有相关验证器的ASP.NET控件。我希望在单击下一个按钮时触发此验证器(或者当每个输入失去焦点时?)。
我记得ASP.NET在失去焦点的情况下进行客户端验证,但也许我错了......(我现在退出ASP.NET开发大约3年了,所以我不记得了)
由于
更新
当关联控件失去焦点时,最好让ASP.NET触发每个验证器。我记得ASP.NET这样做(或者我在做梦?= P)
答案 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