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 ...
随机推荐
- hdu 6069 Counting Divisors 筛法
Counting Divisors Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Oth ...
- Error: Program type already present: okhttp3.Authenticator$1
在app中的build.gradle中加入如下代码, configurations { all*.exclude group: 'com.google.code.gson' all*.exclude ...
- go 接口以及对象传递
// Sample program to show how to use an interface in Go. package main import ( "fmt" ) // ...
- Cross-site request forgery 跨站请求伪造
Cross-site request forgery 跨站请求伪造 简称为CSRF或者XSRF,通过伪装来自受信任用户的请求来利用受信任的网站 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来 ...
- art-template实战
内容div <div id="sku-cont"> <div class="form-group col-lg-12"> <div ...
- SQL中的float类型的数据
问题1. 如何在SQL中默认的使用float类型的数据 SQL中想要通过计算的方式最快的得到一个float类型的数据,只需要运算的其中一个值后面加上小数点就ok. 比如 :9/2=4 但是 :9/2 ...
- SQL Server DATEADD() 函数及实际项目应用注意事项
1. DATEADD() 函数的解释和语法分析 DATEADD() 函数在日期中添加或减去指定的时间间隔. 语法: DATEADD(datepart,number,date) date 参数是合法的日 ...
- 四个session
- Codeforces 1005 E2 - Median on Segments (General Case Edition)
E2 - Median on Segments (General Case Edition) 思路: 首先我们计算出solve(m):中位数大于等于m的方案数,那么最后答案就是solve(m) - s ...
- jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第二话):安装插件,配置JDK、Git、Ant
jenkins之所以这么强大,离不开丰富的插件库. 要确保jenkins上安装好Git plugin.GitHub plugin.AntPlugin插件,一般在启动jenkins时默认安装的插件中就包 ...