Js表单验证控件-02 Ajax验证
在《Js表单验证控件(使用方便,无需编码)-01使用说明》中,写了Verify.js验证控件的基本用法,基本可以满足大多数验证需求,如果涉及服务端的验证,则可以通过Ajax。
Ajax验证有两种,一种是前端验证,一种是请求服务器端的验证,例如验证密码是否正确。
前端验证很简单,verify.js验证控件的基本原理就是点击验证按钮时,遍历各处控件上的验证属性,如果不满足验证条件,则返回false; 当ajax异步验证时只是调用了验证按钮的事件。
如下,验证表单中的b组控件
Verify.IsPass($("form"),"b")
概述
Verify.js所提供的验证方法,都是基于前端技术,针对一些需要与服务器端交互的验证,例如验证码、短信验证、登录验证等,需要接合Ajax的方式异步与服务器端交互,返回判断结果。 根据判断结果,指定具体的某个控件校验证失败,并显示提示。
相较于之前的验证方式(只用增加控件属性即可实现验证),Ajax的代码编写略显复杂,如果熟悉Javascrpt代码编写,其实也很简单。 如下代码,是在指定的控件上显示错误提示信息。
Verify.ShowBox($("form input[name=tbPhone]"), "该手机号未在系统中注册!");
示例
1、Javascript单独验证某个控件
注意,下述代码中没有form标签,不再通过form的提交事件进行验证,而是手工编写Javascript代码对任一一个控件进行单独验证。
绿色的按钮只是一个普通的Div标签,只是样式像个按钮。
<p> 姓名:
<input name="name" type="text" size="6" datatype="chinese"
place="right" lenlimit="2-4" alt="限2至4个中文字/符">
<span>(限中文)</span> </p>
<p> 年龄:
<input type="text" name="age" size="4" datatype="uint" nullable="false" place="right" />
</p>
<p>
<div class="btn" id="btn">验证表单(div)</div>
</p>
<script type="text/javascript">
$("#btn").click(function(){
if(Verify.IsPass($("input[type=text][name=name]"))){
alert("姓名录入合格");
};
if(Verify.IsPass($("input[type=text][name=age]"))){
alert("年龄录入合格");
};
});
</script>
姓名: (限中文)
年龄: *
2、Javascript批量验证控件
当点击按钮时,可以实现对form表单内的控件进行分组验证,全部通过则返回true,否则返回false。该过程不会触发form的submit事件。
form在此处可以仅仅作为一个容器。
<form place="right">
<p> 账号:
<input name="" type="text" nullable="false" datatype="user" group="a"/>
(a组) </p>
<p> 姓名:
<input name="" type="text" size="6" datatype="chinese" lenlimit="2-4" group="b" alt="限2至4个中文字/符">
<span>(b组)</span> </p>
<p> 年龄:
<input type="text" size="4" datatype="uint" nullable="false" place="right" group="a|b"/>
(ab组) </p>
<p> 电话:
<input type="text" datatype="mobile|tel" nullable="false" alt="请输入正确的电话号码" group="b">
(b组) </p>
<p> 邮箱:
<input type="text" datatype="email" nullable="false" />
(没有组) </p>
<p>
<div class="btn" id="btnA">验证A组(div)</div>
<div class="btn" id="btnB">验证B组(div)</div>
<div class="btn" id="btnAB">验证AB组(div)</div>
<div class="btn" id="btnNull">验证没有组(div)</div>
</p>
<script type="text/javascript">
$("#btnA").click(function(){
if(Verify.IsPass($("form"),"a")){
alert("a组验证通过");
};
});
$("#btnB").click(function(){
if(Verify.IsPass($("form"),"b")){
alert("b组验证通过");
};
});
$("#btnAB").click(function(){
if(Verify.IsPass($("form"),"a|b")){
alert("ab组验证通过");
};
});
$("#btnNull").click(function(){
if(Verify.IsPass($("form"))){
alert("没有分组的控件验证通过");
};
});
</script>
</form>
账号: * (a组)
姓名: (b组)
年龄: * (ab组)
电话: * (b组)
邮箱: * (没有组)
3、通过Ajax回调,手动显示错误提示
注意,Ajax的调用必须是在http状态下。
<p> 姓名:
<input name="name2" type="text" size="6"
datatype="chinese" place="right" lenlimit="2-4" alt="请输入中文">
<span>(限中文)</span> </p> <p>
<div class="btn" id="btnGet">验证表单(div)</div>
</p>
<script type="text/javascript">
$("input[name=button2]").click(function(){
$.get("1-1.htm",function(){
Verify.ShowBox($("input[type=text][name=name2]"),"姓名已经存在");
});
});
</script>
Js表单验证控件-02 Ajax验证的更多相关文章
- 【ASP.NET 基础】表单和控件
1.HTML表单的提交方式 对于一个普通HTML表单来说,它有两个重要的属性:action 和 method.action属性指明当前表单提交之后由哪个程序来处理,这个处理程序可以是任何动态网页或者 ...
- ASP.NET开发中主要的字符验证方法-JS验证、正则表达式、验证控件、后台验证
ASP.NET开发中主要的字符验证方法-JS验证.正则表达式.验证控件.后台验证 2012年03月19日 星期一 下午 8:53 在ASP.NET开发中主要的验证方法收藏 <1>使用JS验 ...
- 详解Ajax请求(三)——jQuery对Ajax的实现及serialize()函数对于表单域控件参数提交的使用技巧
原生的Ajax对于异步请求的实现并不好用,特别是不同的浏览器对于Ajax的实现并不完全相同,这就意味着你使用原生的Ajax做异步请求要兼顾浏览器的兼容性问题,对于java程序员来讲这是比较头疼的事情, ...
- [WPF自定义控件库]简单的表单布局控件
1. WPF布局一个表单 <Grid Width="400" HorizontalAlignment="Center" VerticalAlignment ...
- HTML之表单类控件、图像类元素的CSS特别样式汇总
前言 记录下开发过程中一些特殊表单控件(input.textarea.select等)的样式控制 input 取消光标聚焦时,输入框的外延边框 input:focus{ outline:none } ...
- jeecg表单页面控件权限设置(请先看官方教程,如果能看懂就不用看这里了)
只是把看了官方教程后,觉得不清楚地方补充说明一下: 1. 2. 3. 4.用"jeecgDemoController.do?addorupdate"这个路径测试,不出意外现在应该可 ...
- 使用jquery.validate.js插件进行表单里控件的验证
jsp中具体实现的代码: <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- ASP.NET验证控件CustomValidator客户端验证DropDownList、TextBox
<asp:DropDownList ID="ddlTown" runat="server"> <asp:ListItem Value=&quo ...
- ASP.NET_验证控件(class0620)
为什么使用验证控件 当需要让用户输入数据时,用户有可能输入不符合我们程序逻辑要求的信息,所以我们要对输入进行验证. 客户端验证(用户体验,减少服务器端压力) 服务器端验证(防止恶意攻击,客户端js很容 ...
随机推荐
- Vue Loader
介绍 允许为 Vue 组件的每个部分使用其它的 webpack loader,例如在 <style> 的部分使用 Sass 和在 <template> 的部分使用 Pug(模板 ...
- 学习node.js 第1篇 介绍nodejs
Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方 ...
- mybatis sql参考
参考mybatis sql: <select id="xxx" resultType="com.xxxx.xxx.vo.xx.xx" parameterT ...
- 安装zabbix3.4 centos7
服务端 192.168.70.133 客户端 192.168.70.134 sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc ...
- MySQL innodb_autoinc_lock_mode 详解
innodb_autoinc_lock_mode这个参数控制着在向有auto_increment 列的表插入数据时,相关锁的行为: 通过对它的设置可以达到性能与安全(主从的数据一致性)的平衡 [0]我 ...
- mongodb文件损坏的恢复--无可恢复数据
1.mongodb 启动异常error code 100,检查日志,数据文件损坏 2 检查collection-15-6548623434943640018.wt 可恢复数据,为空,不存在恢复的数据 ...
- python list中append()方法和extend()方法区别
共同点 只能作用于list类型(不能作用于tuple等其他类型) 单参数限制(不支持多参数) 不同点 list.append(object) 向列表中添加一个对象object. 使用append的时候 ...
- 706. Design HashMap 实现哈希表
[抄题]: public MyHashMap() { 主函数里面是装非final变量的,如果没有,可以一个字都不写 } [暴力解法]: 时间分析: 空间分析: [优化后]: 时间分析: 空间分析: ...
- 微软Office Online服务安装部署(一)
1.要使用office online功能,首先需要的是2台主机,并且主机的系统要求是windwos Server 我把他命名为Server和Client(两台服务器 用户必须为administrato ...
- java编译时出现——注:使用了未经检查或不安全的操作。注:有关详细信息,请使用 -Xlint:unchecked 重新编译
网上说是泛型问题 private List<Product> products = new ArrayList<Product>(); 这种用法绝对没错!(因为是照着书写的)在 ...