RequiredFieldValidator + OnClientClick + ValidationGroup 问题处理
在ASP.NET 2.0中引入了OnClientClick属性,以消除开发人员以编程方式将客户端“onclick”添加到控件的需要。
例:
JS脚本
function ShowMe()
{ alert(“show”);
}
ASPX
<asp:TextBox id =“txtName”runat =“server”/>
<asp:Button id =“btn Submit” OnClientClick =“ShowMe()” Text =“提交” runat =“server”/>
这是一个很简单的调用,但是,当OnClientClick遇到Validator类型的控件时,会有奇怪的问题
例:
<asp:TextBox id =“txtName”runat =“server”/>
<asp:RequiredFieldValidator ID=“RequiredFieldValidator1” ControlToValidate =“txtName” ErrorMessage =“请填写姓名” Display =“Dynamic” runat =“server”/>
<asp:Button ID =“btnSubmit” OnClientClick =“ShowMe()” Text =“提交” runat =“server”/>
每次点提交都会先调用ShowMe函数,之后再出现校验结果,很明显这个不是我们想要的。
在多种方案搁浅后,题主发现了一个通用的解决方案,只用一行代码解决该问题。
function ShowMe()
{ if (Page_ClientValidate()){alert("show"); }
}
完美解决,惊呆中…
-----------------------------------------------------------------------------------------分割线
真实使用中遇到的问题:
先说明需求:
- 弹窗点取消加载loading,调用cs
- 点确定时如果校验未通过,不加载loading,不调用cs
- 点确定校验通过的时候,加载loading,调用cs
遇到的问题:
- 同一个列表页有编辑和新增两个弹窗,分别进行了校验(用ValidationGroup,不知道用法请自行百度),但是Page_ClientValidate()会执行当前页的所有校验,因此新增和编辑会互相影响
解决方案:传入参数ValidationGroup,调用时当做入参,如下:
Page_ClientValidate(ValidationGroup) - 弹窗中取消调用cs中的方法重置弹窗中的form,因此取消和确定都调用了Page_ClientValidate(),但是该方法调用时会自动进行表单校验,因此本来不需要校验的取消也进行了校验没有调用cs:
解决方案:入参表征是否进行验证。
最终版代码如下:
function layerLoad(confirm, group) {if (!(confirm && !Page_ClientValidate(group))) {// 加载loading框layer.load(2);}
}
confirm传入false也会阻断Page_ClientValidate(group)方法的执行,因此传入false时候肯定不会进行校验且会加载loading框。
RequiredFieldValidator + OnClientClick + ValidationGroup 问题处理相关推荐
- RequiredFieldValidator 根据group组来触发验证
今天在开发过程中遇到了这样一个问题 在这个用户添加界面中,我使用了多个验证控件RequiredFieldValidator,分别控制用户名密码.在默认情况下,当单击"检查用户名"时 ...
- validationGroup和Page_ClientValidate()配合使用解决前端click事件返回为false时验证失效问题
一.问题出现场景 场景:我在做项目的时候在同一页面两块区域分别由自己要验证的东西,其中有一块区域的button有OnClientClick和OnClick两个事件,需要通过OnClientClick进 ...
- asp.net2.0中的ValidationGroup (转)
asp.net2.0中的ValidationGroup 在asp.net 1.1中,对于验证类控件,在使用时,遇到有的不需要验证的控件时,是十分麻烦的,就是说不可能有选择验证某些控件,而在asp.ne ...
- ASP.NET中 ValidationGroup[控件的属性]:分组验证的使用
1.A,运行效果返回顶部 ValidationGroup[控件的属性]:分组验证 同组验证的组名相同 登录 注册 用户名: 注册账号: 密 码: 密 钥: ...
- ValidationGroup指定后,ValidationSummary失效的解决办法。
1.没有指定ValidationGroup,ValidationSummmary正常运行. <div><asp:ValidationSummary ID="valsStar ...
- custom validator and validationGroup
Validation groups allow you to organize validation controls on a page as a set. Each validation grou ...
- ASP.NET ValidationGroup 属性和CssClass 属性
定义和用法 获取或设置在 Button 控件回发到服务器时要进行验证的控件组. 通常在表单中存在多个按钮时使用该属性. 语法 <asp:Button ValidationGroup=" ...
- ValidationGroup 使用
今天在crtl+c&ctrl+v中无意中发现TextBox居然有这样的属性ValidationGroup 看来微软还是想到这东西了,哈哈 <%@ Page Language=" ...
- asp.net 2.0中的ValidationGroup
在asp.net 1.1中,对于验证类控件,在使用时,遇到有的不需要验证的控件时,是十分麻烦的,就是说不可能有选择验证某些控件,而在asp.net 2.0中,新增加了validationgroup属性 ...
最新文章
- 图解PE文件实例研究
- 如何打造智能化的员工出行方式?阿里自研出行神器首次曝光
- WordPress的nocache header生成原理
- Java 编写程序 创建一个游戏【5、6两章的内容】【第5章】
- FreeRTOS--堆内存管理(二)
- div 隐藏_div的position属性
- 诱导公式的本质【转载】
- 使用fiddler获取手机上的数据
- python38使用_笨方法学Python 习题38:列表的操作
- java 多列 统计_java – 如何计算多列(colspan)HTML表的宽度?
- jsp include参数传送接收与应用
- Ubuntu 14.04下360/小米/百度等随身Wifi驱动安装方法
- [重庆邮电大学俱乐部] 成都普创技术总监方锋:从校园人到职业人
- 路飞学城Python-Day37(practise)
- 芯片烧录器编程AT24C02
- 《Machine Learning in Action》—— 浅谈线性回归的那些事
- html 预选单选按钮,关于html:单选按钮的预选
- EverBox 能否成为中国的dropbox
- Sublime Text 3 Build 3065 All System CracKed By Hmily[LCG]
- python-淘宝信息定向爬取
热门文章
- Python--爬虫--XPath入门
- 空间s与战争地形nbsp;系统思考与…
- XCopy复制文件夹命令及参数详解
- FIND函数的使用方法
- 数据驱动增长 895% 背后的理论与实践
- Opencv Object Tracking【使用OpenCV目标跟踪模块】
- 要求先设计一个 moveable 可移动接口(声明向前、后、左、右方法), 然后分别设计 3 个类 , 即汽车 Car 、轮船 Ship 、飞机 Aircraft 来实现该接口 , 最后设计主程序实现
- setTimeout 、 clearTimeout
- php不可以声明友元类,一个类的友元函数或友元类可以访问该类的( )。
- MSSQL更改数据库文件路径