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表单 异步服务器端验证的更多相关文章

  1. jQuery html5Validate基于HTML5表单验证插件

    更新于2016-02-25 前面提到的新版目前线上已经可以访问: http://mp.gtimg.cn/old_mp/assets/js/common/ui/Validate.js demo体验狠狠地 ...

  2. jQuery Validate插件实现表单强大的验证功能

    转自:http://www.jb51.net/article/76595.htm jQuery Validate插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自 ...

  3. 使用jQuery.form插件,实现完美的表单异步提交

    传送门:异步编程系列目录…… 时间真快,转眼一个月快结束了,一个月没写博客了!手开始生了,怎么开始呢…… 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 月份的尾巴,今天的主 ...

  4. 使用jQuery,实现完美的表单异步提交

    jQuery异步提交表单 <form id="form1" method="post"> <table border="1" ...

  5. 基于jQuery商品分类选择提交表单代码

    分享一款基于jQuery商品分类选择提交表单代码.这是一款基于jQuery实现的商品信息选择列表表单提交代码. 在线预览   源码下载 实现的代码: <div class="yList ...

  6. 一款基于jQuery的带Tooltip表单验证的注册表单

    今天给大家分享一款基于jQuery的注册表单,这款注册表单的特点是确认提交注册信息时,表单会自动验证所填写的信息,如果信息填写有误,即会在相应的字段内以Tooltip提示框的形式显示错误信息.这款jQ ...

  7. 实现跨浏览器html5表单验证

    div:nth-of-type(odd){ float: left; clear: left; } .origin-effect > div:nth-of-type(even){ float: ...

  8. Ideal Forms – 帮助你建立响应式 HTML5 表单

    Ideal Forms 是建立和验证响应式 HTML5 表单的终极框架.它刚刚发布 V3 版本,更小,更快,更具可扩展性.它支持实时验证,完全自适应(适应容器,没有 CSS 媒体查询需要),键盘支持, ...

  9. html5 表单样式 表单验证1 2 3

    html5 表单样式 ie9以下不支持 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

随机推荐

  1. 【BZOJ】3140: [Hnoi2013]消毒

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3140 猜一发(显然)有结论:每次一定选择一个平面,即每次操作对答案的贡献都为$1$ 首先可 ...

  2. 《深入理解JVM虚拟机》读书笔记

    前言:<深入理解JVM虚拟机>是JAVA的经典著作之一,因为内容更偏向底层,所以之前一直没有好好的阅读过.最近因为刚好有空,又有了新目标.所以打算和<构架师的12项修炼>一起看 ...

  3. tkinter 打包成exe可执行文件

    1.安装pyinstaller pip install pyinstaller 2.打包 打开cmd,切换到需要打包的文件(demo.py)目录.执行 pyinstaller -F -w demo.p ...

  4. [原][粒子特效][spark]调节器modifier

    深入浅出spark粒子特效连接:https://www.cnblogs.com/lyggqm/p/9956344.html group添加modifier的方式: modifier An abstra ...

  5. linux 打开一个文件现swap文件

    转自:http://blog.csdn.net/eckelwei/article/details/17078187 有时候在用vim打开文件时提示类似以下的信息: 发现交换文件 ".expo ...

  6. mac显示影藏文件

    http://blog.csdn.net/xiaoyuanzhiying/article/details/46694577 然后finder强制退出,然后重启.

  7. 中文情况下,Eclipse的最好字体。

    个人喜欢的是 Microsoft YaHei Mono 了. 下面的文章喜欢的是 YaHei Consolas Hybrid. 字体安装方法的话,拷贝到 widnows\fonts目录就行. http ...

  8. 数据结构(C语言版)-第3章 栈和队列

    3.1 栈和队列的定义和特点3.2 案例引入3.3 栈的表示和操作的实现3.4 栈与递归3.5 队列的的表示和操作的实现3.6 案例分析与实现 基本操作有入栈.出栈.读栈顶元素值.建栈.判断栈满.栈空 ...

  9. 20165327 2017-2018-2 《Java程序设计》第4周学习总结

    20165327 2017-2018-2 <Java程序设计>第4周学习总结 教材内容总结 第五章 继承是一种由已有的类创建新类的机制. class 子类名 extends 父类名{ - ...

  10. Vue.js示例:GitHub提交(watch数据,created钩子,filters过滤); 网格组件(功能:1.检索,2排序);

    GitHub提交 codePen:   https://codepen.io/chentianwei411/pen/wEVPZo 注意:频繁看案例,可能会被限制. 重点: 表单输入绑定, 单选按钮的使 ...