jQuery html5Validate基于HTML5表单 异步服务器端验证
1. HTML5 自带的Validate 很漂亮,很好用, 但是一定要在form里用submit按钮,才生效
<form id="frmInfo" action="/product/" method="post" >
<div class="input-box"><label for="">身份证号码:</label><input type="text" name="BorrowerIDCard" required placeholder="请输入您的身份证号码" pattern="^\d{6}(19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$" oninput="setCustomValidity('');"></div>
<div class="input-box"><label for="">接收款项的银行账号:</label><input type="number" name="BorrowerBankAccount" required placeholder="请输入您的银行账户" oninvalid="setCustomValidity('请输入您的银行账户');" oninput="setCustomValidity('');"></div>
<div class="input-box"><label for="">经办人编号:</label><input type="text" name="StaffCode" required maxlength="8" placeholder="请输入经办人工号" onblur="checkStaffCode($(this).val())"></div>
<div class="input-box"><label for="">手机号码:</label><input type="text" name="Mobile" required pattern="^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\d{8}$" placeholder="请输入您的手机号码" maxlength="11" oninvalid="setCustomValidity('请输入您的手机号码');" oninput="setCustomValidity('');"></div>
<div class="input-box code">
<label for="">验证码:</label><input type="text" name="captcha" id="captcha" required pattern="^\d{4}$" maxlength="4" placeholder="请输入验证码" oninvalid="setCustomValidity('请输入正确的验证码');" oninput="setCustomValidity('');" >
<span>
<img id="cc_image" src="/product/ValidateCode/Contract" alt="点击切换验证码" style="cursor: pointer;" onclick="this.src=this.src+'?';">
</span>
</div>
<input type="button" class="break" value="返回"><input type="submit" class="sub" value="提交">
</form>
但是有个问题,验证码要服务器端验证,经办人编号也要服务器端验证.如果我用button,就不能用自带的Validate, 用Submit按钮, 因为是异步到服务器验证,截获不了.
2. 解决方法1: jquery.validate.js 老古董,但稳定, BUT 样式很难看,和HTML5 自带的Validate 不搭
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
$(function () {
$("#captchaform").validate({
rules: {
captcha: {
required: true,
remote: "/product/getCCInput"
}
},
messages: { captcha: "Correct captcha is required. Click the captcha to generate a new one" },
submitHandler: function () {
alert("Correct captcha!");
},
success: function (label) {
label.addClass("valid").text("Valid captcha!")
},
onkeyup: false
});
});
3. 用这个 https://www.zhangxinxu.com/study/201212/html5validate-example-regist.html
<script src="~/js/jquery-html5Validate.js"></script>
$('#captchaform').html5Validate(function () {
var self = this;
$.ajax({
url: "/product/getCCInput",
data: "captcha=" + $("#captcha").val(),
success: function (result) {
console.log("result:" + result);
console.log(result == false)
if (result == "false")
console.log("验证码错误");
else {
$.ajax({
url: "/product/getStaffCode/" + $("#StaffCode").val(),
success: function (data) {
if (data.isValid) {
self.submit();
}
else {
console.log('经办人编号不正确,staffCode=' + $("#StaffCode").val());
}
}
});
}
}
});
});
jQuery html5Validate基于HTML5表单 异步服务器端验证的更多相关文章
- jQuery html5Validate基于HTML5表单验证插件
更新于2016-02-25 前面提到的新版目前线上已经可以访问: http://mp.gtimg.cn/old_mp/assets/js/common/ui/Validate.js demo体验狠狠地 ...
- jQuery Validate插件实现表单强大的验证功能
转自:http://www.jb51.net/article/76595.htm jQuery Validate插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自 ...
- 使用jQuery.form插件,实现完美的表单异步提交
传送门:异步编程系列目录…… 时间真快,转眼一个月快结束了,一个月没写博客了!手开始生了,怎么开始呢…… 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 月份的尾巴,今天的主 ...
- 使用jQuery,实现完美的表单异步提交
jQuery异步提交表单 <form id="form1" method="post"> <table border="1" ...
- 基于jQuery商品分类选择提交表单代码
分享一款基于jQuery商品分类选择提交表单代码.这是一款基于jQuery实现的商品信息选择列表表单提交代码. 在线预览 源码下载 实现的代码: <div class="yList ...
- 一款基于jQuery的带Tooltip表单验证的注册表单
今天给大家分享一款基于jQuery的注册表单,这款注册表单的特点是确认提交注册信息时,表单会自动验证所填写的信息,如果信息填写有误,即会在相应的字段内以Tooltip提示框的形式显示错误信息.这款jQ ...
- 实现跨浏览器html5表单验证
div:nth-of-type(odd){ float: left; clear: left; } .origin-effect > div:nth-of-type(even){ float: ...
- Ideal Forms – 帮助你建立响应式 HTML5 表单
Ideal Forms 是建立和验证响应式 HTML5 表单的终极框架.它刚刚发布 V3 版本,更小,更快,更具可扩展性.它支持实时验证,完全自适应(适应容器,没有 CSS 媒体查询需要),键盘支持, ...
- html5 表单样式 表单验证1 2 3
html5 表单样式 ie9以下不支持 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
随机推荐
- 【BZOJ】3140: [Hnoi2013]消毒
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3140 猜一发(显然)有结论:每次一定选择一个平面,即每次操作对答案的贡献都为$1$ 首先可 ...
- 《深入理解JVM虚拟机》读书笔记
前言:<深入理解JVM虚拟机>是JAVA的经典著作之一,因为内容更偏向底层,所以之前一直没有好好的阅读过.最近因为刚好有空,又有了新目标.所以打算和<构架师的12项修炼>一起看 ...
- tkinter 打包成exe可执行文件
1.安装pyinstaller pip install pyinstaller 2.打包 打开cmd,切换到需要打包的文件(demo.py)目录.执行 pyinstaller -F -w demo.p ...
- [原][粒子特效][spark]调节器modifier
深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html group添加modifier的方式: modifier An abstra ...
- linux 打开一个文件现swap文件
转自:http://blog.csdn.net/eckelwei/article/details/17078187 有时候在用vim打开文件时提示类似以下的信息: 发现交换文件 ".expo ...
- mac显示影藏文件
http://blog.csdn.net/xiaoyuanzhiying/article/details/46694577 然后finder强制退出,然后重启.
- 中文情况下,Eclipse的最好字体。
个人喜欢的是 Microsoft YaHei Mono 了. 下面的文章喜欢的是 YaHei Consolas Hybrid. 字体安装方法的话,拷贝到 widnows\fonts目录就行. http ...
- 数据结构(C语言版)-第3章 栈和队列
3.1 栈和队列的定义和特点3.2 案例引入3.3 栈的表示和操作的实现3.4 栈与递归3.5 队列的的表示和操作的实现3.6 案例分析与实现 基本操作有入栈.出栈.读栈顶元素值.建栈.判断栈满.栈空 ...
- 20165327 2017-2018-2 《Java程序设计》第4周学习总结
20165327 2017-2018-2 <Java程序设计>第4周学习总结 教材内容总结 第五章 继承是一种由已有的类创建新类的机制. class 子类名 extends 父类名{ - ...
- Vue.js示例:GitHub提交(watch数据,created钩子,filters过滤); 网格组件(功能:1.检索,2排序);
GitHub提交 codePen: https://codepen.io/chentianwei411/pen/wEVPZo 注意:频繁看案例,可能会被限制. 重点: 表单输入绑定, 单选按钮的使 ...