不管是做登录、注册还是实体的添加、修改,我们都会用到表单,并且也会同时用到验证,这里结合Validform验证来详细说明form表单提交的内情。。

1. 引入文件

<link href="css/validate.css" rel="stylesheet" />
<script src="scripts/jquery/jquery-1.11.2.min.js"></script>
<script src="scripts/jquery/Validform_v5.3.2_min.js"></script>

2. form表单

<form method="post" action="register.aspx" id="register" runat="server"><div class="zczh"><h2>注册账号</h2><div class="form-group"><dl><dt><i>*</i> 用户名:</dt><dd><asp:TextBox ID="userName" runat="server" ajaxurl="/tools/validreg.ashx?regType=validName" CssClass="form-control" datatype="s4-20" nullmsg="请输入用户名" errormsg="请输入4~20位字符" sucmsg=" " placeholder="4~20个字符,只接受字母和数字,建议用公司缩写"></asp:TextBox></dd><dd class="inline-block"></dd></dl><dl><dt><i>*</i> 密码:</dt><dd><asp:TextBox ID="txtPassword" runat="server" CssClass="form-control" TextMode="Password" datatype="*6-20" nullmsg="请设置密码" errormsg="密码范围在6-20位之间" sucmsg=" " placeholder="可由6-16位英文、数字及标点组成"></asp:TextBox></dd><dd class="inline-block"></dd></dl><dl><dt><i>*</i> 确认密码:</dt><dd><asp:TextBox ID="txtPassword1" runat="server" CssClass="form-control" TextMode="Password" datatype="*" recheck="txtPassword" nullmsg="请再次输入密码" errormsg="两次输入的密码不一致" sucmsg=" " placeholder="请再输入一次密码"></asp:TextBox></dd><dd class="inline-block"></dd></dl><dl><dt><i>*</i> 电子邮箱:</dt><dd><asp:TextBox ID="txtEmail" runat="server" ajaxurl="/tools/validreg.ashx?regType=validEmail"CssClass="form-control" datatype="e" nullmsg="请输入电子邮箱" sucmsg=" " placeholder="格式如:****@163.com"></asp:TextBox></dd><dd class="inline-block"></dd></dl><dl><dt><i>*</i> 手机号码:</dt><dd><asp:TextBox ID="txtTel" runat="server" ajaxurl="/tools/validreg.ashx?regType=validPhone" CssClass="form-control" datatype="/^1(3|4|5|7|8)\d{9}$/" nullmsg="请输入手机号码" sucmsg=" " placeholder="请输入手机号码"></asp:TextBox></dd><dd class="inline-block"></dd></dl><dl><dt><i>*</i> 图形验证码:</dt><dd><asp:TextBox ID="txtImgCode" runat="server" ajaxurl="/tools/validCheckColorCode.ashx?regState=1" CssClass="form-control" datatype="*" nullmsg="请输入右侧图形验证码" sucmsg=" " placeholder="请输入右侧图形验证码" Width="215px"></asp:TextBox><div style="display: inline-block; vertical-align: middle; height: 40px; width: 80px; margin-top: -2px; overflow: hidden; border: 1px solid #ddd;"><a href="javascript:void(0);" id="refreshCode"><img id="imgVerify" src="ColorCheckCode.aspx?" title="看不清点击更换" align="absmiddle" onclick="this.src=this.src+'?'" style="cursor: pointer; height: 42px; margin-top: -1px; margin-left: -1px;" /></a></div></dd><dd class="inline-block"></dd></dl><dl><dt><i>*</i> 短信验证码:</dt><dd><asp:TextBox ID="txtTelCode" runat="server" CssClass="form-control" datatype="n6" nullmsg="请输入手机收到的短信验证码!" errormsg="请输入手机收到的短信验证码!" sucmsg="<font color='green'>恭喜您,验证成功!</font>"ajaxurl="" Width="181px"></asp:TextBox><div style="display: inline-block; vertical-align: middle; margin-top:-8px; height: 38px;" id="divSend"><a class="telcode" id="getCode" href="#">获取短信验证码</a></div></dd><dd class="inline-block"></dd></dl><div class="form-group1" id="divSubmit"><asp:Button ID="btnSubmit" runat="server" CssClass="btn input-submit" Text="立即注册" OnClick="btnSubmit_Click" /></div></div></div><p class="ydxy center"><span>已有账号?<a href="member/Login.aspx">立即登录</a></span></p>
</form>

3. js初始化表单验证

$(function () {var valid_rule = $("#register").Validform({datatype: {//传入自定义datatype类型,可以是正则,也可以是函数(函数内会传入一个参数);"n6": /^\d{6}$/},tiptype: 2});$("#txtTel").blur(function () {$("#txtTelCode").attr("ajaxurl", "/tools/validreg.ashx?regType=validCode&ctype=1&phone=" + $('#txtTel').val());});
});

4. 手机号是否重复验证示例

#region //手机号验证
public void PhoneValid(HttpContext context)
{string txtTel = DTRequest.GetString("param");SqlParameter[] param = {new SqlParameter("@mobile", txtTel)};int count1 = int.Parse(DbHelperSQL.GetSingle("select count(id) from lab_users where mobile=@mobile", param).ToString());if (count1 == 0){context.Response.Write("{ \"info\":\"<font color='green'>该手机号可用</font>\", \"status\":\"y\" }");}else{context.Response.Write("{ \"info\":\"该手机号已注册过,请更换!\", \"status\":\"n\" }");}
}
#endregion

5. 验证效果

当然这里只有密码是简单的使用validform的验证,其他都是采用ajax与validform的结合。
使用时注意事项如下:

(1) 如果仅仅使用validform的内置验证,在js中可直接简单的初始化就可以,如:$(“#register”).Validform({tiptype: 2}),里面的参数tiptype是表明要使用的错误提示方法,如果使用默认的可以去掉tiptype。

(2) 上述例子在js中可以自定义validform的验证,类似于在datatype属性中定义的“n6”,可以同样使用。

(3) 如用户名这样的验证是结合validform的内置验证与ajax的验证,即两种验证都有,其中ajax的验证可以使用属性ajaxurl指定相应的一般处理程序路径,具体使用可参考示例手机号重新验证方法。

(4) 因为手机号与短信验证码均需求验证,而我们又是必须先填手机号,在其验证通过并发送验证码(方法请参考ASP.NET发送手机短信验证码)后再对验证码进行验证,这里需要注意的是对验证码即控件txtTelCode的属性ajaxurl的设置必须是在对手机号验证通过后,这是一个先后顺序问题。这里采用的是在手机号控件的blur事件中设置,请参考上述js中的事件代码。

(5) 注意必须是submit的提交才会触发validform验证,这里的submit可以是type=”submit”的input控件,也可以是type=”submit”的button控件,当然如果你是用的服务器控件就更没问题了,因为所有服务器控件的事件都会触发validform的验证。

Form表单提交与Validform验证的那些事相关推荐

  1. html form提交前验证,form表单提交前验证实现方法

    form表单提交前验证实现方法2017-11-26 20:54 form表单提交是网站中最常见的,基本上所有的网站都会用到. 除非你就一些静态网页,仅仅是展示,而不需要互动,所以不需要提交表单. 但是 ...

  2. ajax提交,form表单提交,onsubmit=return checksubmit()提交验证

    Ajax提交的两种方式: 一是url参数提交数据, 二是form提交(和平常一样在后台可以获取到Form表单的值).在所要提交的表单中,如果元素很多的话建议用第二种方式进行提交 一.Url参数提交数据 ...

  3. 手机网站form表单check神器——Validform

    手机端的商城项目已经上线了很久,但一直留有令人耿耿于怀的问题--form表单没有找到合适的validate,也就是说项目的input标签check只是做在了后台,前端并没有进行验证,这显然给后台服务器 ...

  4. 文件上传 java 完美,vue+java实现文件上传(excel等),会出现跨域问题,直接用form表单提交就不会有问题了(new FormData())...

    vue+java实现文件上传(excel等),会出现跨域问题,直接用form表单提交就不会有问题了(new FormData()) 地址:https://www.cnblogs.com/muscles ...

  5. 前端页面与form表单提交:代码分享

    今天分享下"前端页面与form表单提交:代码分享"这篇文章,文中根据实例编码详细介绍,或许对大家的编程之路有着一定的参考空间与使用价值,需要的朋友接下来跟着云南仟龙Mark一起学习 ...

  6. form 表单提交时用ajax异步请求导致ajax请求结果无法接收问题

    1.背景描述,有个公司内部用的小系统,不想大动干戈用太多前端框架,就用HTML5写了个登陆页面,刚开始想着用form表单提交登陆账户信息.后来因为前后端分离,并且统一用ajax调用后台服务交互数据,因 ...

  7. ajax提交表单跨域啊,form表单提交没有跨域问题,但ajax提交存在跨域问题

    浏览器的策略本质是:一个域名下面的JS,没有经过允许是不能读取另外一个域名的内容,但是浏览器不阻止你向另外一个域名发送请求. 所以form表单提交没有跨域问题,提交form表单到另外一个域名,原来页面 ...

  8. 将form表单提交文件修改为ajax提交

    好久没有记录工作中的出现的问题了,不过最近客户提出了新的需求,正好弥补了一下我的短板,学到了新的知识. 周一接到客户电话,要求完善上周写的某个功能--就是同时上传多个图片,并通过接口程序传到第三方系统 ...

  9. Form 表单提交 和 Ajax 表单提交 的一些区别

    自己一些心得体会: 1:form 表单提交后进行后台处理程序,没有直接返回值,只能进行后台处理,Form标签里的所有数据全部提交到后台 ajax 表单提交,是可以局部提交,具有ajax的所有属性... ...

最新文章

  1. windows server r2 之如何设置共享文件夹访问不需要输入用户名和密码
  2. Eclipse分栏显示同一个代码文件的设置
  3. php网站后台密码加密,thinkphp 后台登陆密码加密传入密钥
  4. 动画-animation
  5. 未能初始化appscan应用程序现在将关闭_企业区块链应用程序的两个关键问题
  6. Android MediaRecorder录制视频提示start failed的解决办法
  7. 全球首发!惯性导航导论(剑桥大学)第五部分
  8. GMAIL DRIVE 提供邮箱一样大小的硬盘
  9. 一些常见监控服务如Nagios、Cacti和Zabbix的搭建
  10. 被遗忘权_HTML:前5个被遗忘的元素
  11. 在线工具大全,在线办公
  12. python画多个圆_我如何用pythonturtle画一个中间有一个圆的圆圈?
  13. java 使用HttpC'lient 解析webService
  14. Faithfully yours, nginx. 浏览器中显示包504,504 Gateway Time-out解决办法
  15. 物联网开发笔记(58)- 使用Micropython开发ESP32开发板之控制2.90寸电子墨水屏模块黑白套件
  16. java【猴子吃桃问题】
  17. 无法启动此程序,因为计算机中丢失 api-ms-win-crt-stdio-l1-1-0.dll
  18. Linux设备上时间不准确?使用chrony服务配置时间服务器实现Linux时间同步以及实现主从设备时间同步
  19. Nvidia-smi简介
  20. 计算机图形学消隐的概念

热门文章

  1. 各浏览器性能指标测试
  2. BIMBase-Python参数化组件常见问题——脚本运行常见报错
  3. shader性能优化总结
  4. 通过WMI接口监控服务器性能
  5. Python第四次作业-----宋舒婷
  6. 人人都能买得起的百万医疗保险:蚂蚁保险好医保长期医疗和平安e生保怎么样?哪个好?
  7. 简单选择排序的稳定性
  8. sqlalchemy sequence
  9. linux允许佚名用户访问权限,Linux上的ACL权限文件访问
  10. centos7上配置开源镜像站之网易