在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"); }
}

完美解决,惊呆中…

-----------------------------------------------------------------------------------------分割线

真实使用中遇到的问题:
先说明需求:

  1. 弹窗点取消加载loading,调用cs
  2. 点确定时如果校验未通过,不加载loading,不调用cs
  3. 点确定校验通过的时候,加载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 问题处理相关推荐

  1. RequiredFieldValidator 根据group组来触发验证

    今天在开发过程中遇到了这样一个问题 在这个用户添加界面中,我使用了多个验证控件RequiredFieldValidator,分别控制用户名密码.在默认情况下,当单击"检查用户名"时 ...

  2. validationGroup和Page_ClientValidate()配合使用解决前端click事件返回为false时验证失效问题

    一.问题出现场景 场景:我在做项目的时候在同一页面两块区域分别由自己要验证的东西,其中有一块区域的button有OnClientClick和OnClick两个事件,需要通过OnClientClick进 ...

  3. asp.net2.0中的ValidationGroup (转)

    asp.net2.0中的ValidationGroup 在asp.net 1.1中,对于验证类控件,在使用时,遇到有的不需要验证的控件时,是十分麻烦的,就是说不可能有选择验证某些控件,而在asp.ne ...

  4. ASP.NET中 ValidationGroup[控件的属性]:分组验证的使用

    1.A,运行效果返回顶部 ValidationGroup[控件的属性]:分组验证 同组验证的组名相同 登录 注册 用户名:    注册账号:    密    码:    密        钥:     ...

  5. ValidationGroup指定后,ValidationSummary失效的解决办法。

    1.没有指定ValidationGroup,ValidationSummmary正常运行. <div><asp:ValidationSummary ID="valsStar ...

  6. custom validator and validationGroup

    Validation groups allow you to organize validation controls on a page as a set. Each validation grou ...

  7. ASP.NET ValidationGroup 属性和CssClass 属性

    定义和用法 获取或设置在 Button 控件回发到服务器时要进行验证的控件组. 通常在表单中存在多个按钮时使用该属性. 语法 <asp:Button ValidationGroup=" ...

  8. ValidationGroup 使用

    今天在crtl+c&ctrl+v中无意中发现TextBox居然有这样的属性ValidationGroup 看来微软还是想到这东西了,哈哈 <%@ Page Language=" ...

  9. asp.net 2.0中的ValidationGroup

    在asp.net 1.1中,对于验证类控件,在使用时,遇到有的不需要验证的控件时,是十分麻烦的,就是说不可能有选择验证某些控件,而在asp.net 2.0中,新增加了validationgroup属性 ...

最新文章

  1. 图解PE文件实例研究
  2. 如何打造智能化的员工出行方式?阿里自研出行神器首次曝光
  3. WordPress的nocache header生成原理
  4. Java 编写程序 创建一个游戏【5、6两章的内容】【第5章】
  5. FreeRTOS--堆内存管理(二)
  6. div 隐藏_div的position属性
  7. 诱导公式的本质【转载】
  8. 使用fiddler获取手机上的数据
  9. python38使用_笨方法学Python 习题38:列表的操作
  10. java 多列 统计_java – 如何计算多列(colspan)HTML表的宽度?
  11. jsp include参数传送接收与应用
  12. Ubuntu 14.04下360/小米/百度等随身Wifi驱动安装方法
  13. [重庆邮电大学俱乐部] 成都普创技术总监方锋:从校园人到职业人
  14. 路飞学城Python-Day37(practise)
  15. 芯片烧录器编程AT24C02
  16. 《Machine Learning in Action》—— 浅谈线性回归的那些事
  17. html 预选单选按钮,关于html:单选按钮的预选
  18. EverBox 能否成为中国的dropbox
  19. Sublime Text 3 Build 3065 All System CracKed By Hmily[LCG]
  20. python-淘宝信息定向爬取

热门文章

  1. Python--爬虫--XPath入门
  2. 空间s与战争地形nbsp;系统思考与…
  3. XCopy复制文件夹命令及参数详解
  4. FIND函数的使用方法
  5. 数据驱动增长 895% 背后的理论与实践
  6. Opencv Object Tracking【使用OpenCV目标跟踪模块】
  7. 要求先设计一个 moveable 可移动接口(声明向前、后、左、右方法), 然后分别设计 3 个类 , 即汽车 Car 、轮船 Ship 、飞机 Aircraft 来实现该接口 , 最后设计主程序实现
  8. setTimeout 、 clearTimeout
  9. php不可以声明友元类,一个类的友元函数或友元类可以访问该类的( )。
  10. MSSQL更改数据库文件路径