bootstrap html5 表单验证,基于Bootstrap+jQuery.validate实现表单验证

这大概是一种惯例,学习前台后台最开始接触的业务都是用户注册和登录。现在社会坚持以人为本的理念,在网站开发过程同样如此。User是我们面对较多的对象,也是较核心的对象。最开始的用户注册和登陆这块,也就尤为重要。

用户注册和登录其实往往比我们想象的难。就比如表单校验,里面涵盖的内容其实挺多,就前台而言,你需要了解:

1.正则表达式的基本了解

其实正则并不难,并且在学会后能带给你极大的成就感,享受那种事半功倍的效果吧。

2.ajax异步请求

在验证用户名是否存在、用户登录时账号或者密码错误时给出相应的提示。

3.一些方便的验证库,比如jQuery.validate

正因为如此普遍的需求和一定的复杂性,bootstrap表单和jQuery.validate表单校验等一些优秀的类库专为人们解决UI、表单校验问题。

下面就是我用bootstrap+jQuery.validate做的界面:

0663d22383423df992ed1b2c316cad54.png

e840f8763522003df2709b84587ba734.png

一、bootstrap3基本表单和水平表单

1、基本表单

基本的表单结构是 Bootstrap 自带的,下面列出了创建基本表单的步骤:

向父元素

添加 role="form"。

把标签和控件放在一个带有 class .form-group 的

中。这是获取最佳间距所必需的。

向所有的文本元素 、 和 添加 class .form-control。

名称

placeholder="请输入名称">

效果如下:

ae50e5f11a9c31cebd6db9d520ed59a4.png

2、水平表单

在了解水平表单之间,我们应该对bootstrap的网格系统有所了解。

Bootstrap 包含了一个响应式的、移动设备优先的、不固定的网格系统,可以随着设备或视口大小的增加而适当地扩展到 12 列。它包含了用于简单的布局选项的预定义类,也包含了用于生成更多语义布局的功能强大的混合类。

响应式网格系统随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列,也就是说它是以百分比定义宽度的。

108532cdf6212ac31691d2598b242657.png

水平表单与其他表单不仅标记的数量上不同,而且表单的呈现形式也不同。如需创建一个水平布局的表单,请按下面的几个步骤进行:

步骤1:向父

元素添加 class .form-horizontal。

步骤2:把标签和控件放在一个带有 class .form-group 的

中。

步骤3:向标签添加 class .control-label。

名字

placeholder="请输入名字">

效果如下:

b23ee9a6faac8985bafaf88d553db492.png

二、jQuery.validate 自定义校验方法

1、自定义校验方法

// 手机号码验证

jQuery.validator.addMethod("isPhone", function(value, element) {

var length = value.length;

return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/.test(value));

}, "请正确填写您的手机号码。");

2、调用自定义校验

rules : {

phone : {

required : true,

isPhone : true

}

}

3、自定义错误显示

514be05b278e33a222ce6e095cd1764c.png

三、register.html

注册

#register-form{

border: 1px solid rgb(197, 197, 197);

width: 1000px;

margin: auto;

border-image: none;

padding: 30px;

border-radius: 3px;

}

用户注册

用户名:

密码:

确认密码:

E-Mail:

手机号码:

固定电话:

家庭住址:

注册

重置

四、form.js

$(document).ready(function() {

// 手机号码验证

jQuery.validator.addMethod("isPhone", function(value, element) {

var length = value.length;

return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/.test(value));

}, "请正确填写您的手机号码。");

// 电话号码验证

jQuery.validator.addMethod("isTel", function(value, element) {

var tel = /^(\d{3,4}-)?\d{7,8}$/g; // 区号-3、4位 号码-7、8位

return this.optional(element) || (tel.test(value));

}, "请正确填写您的电话号码。");

// 匹配密码,以字母开头,长度在6-12之间,必须包含数字和特殊字符。

jQuery.validator.addMethod("isPwd", function(value, element) {

var str = value;

if (str.length < 6 || str.length > 18)

return false;

if (!/^[a-zA-Z]/.test(str))

return false;

if (!/[0-9]/.test(str))

return fasle;

return this.optional(element) || /[^A-Za-z0-9]/.test(str);

}, "以字母开头,长度在6-12之间,必须包含数字和特殊字符。");

$("#register-form").validate({

errorElement : 'span',

errorClass : 'help-block',

rules : {

firstname : "required",

email : {

required : true,

email : true

},

password : {

required : true,

isPwd : true

},

confirm_password : {

required : true,

isPwd : true,

equalTo : "#password"

},

phone : {

required : true,

isPhone : true

},

tel : {

isTel : true

},

address : {

minlength : 10

}

},

messages : {

firstname : "请输入姓名",

email : {

required : "请输入Email地址",

email : "请输入正确的email地址"

},

password : {

required : "请输入密码",

minlength : jQuery.format("密码不能小于{0}个字 符")

},

confirm_password : {

required : "请输入确认密码",

minlength : "确认密码不能小于5个字符",

equalTo : "两次输入密码不一致不一致"

},

phone : {

required : "请输入手机号码"

},

tel : {

required : "请输入座机号码"

},

address : {

required : "请输入家庭地址",

minlength : jQuery.format("家庭地址不能少于{0}个字符")

}

},

//自定义错误消息放到哪里

errorPlacement : function(error, element) {

element.next().remove();//删除显示图标

element.after('');

element.closest('.form-group').append(error);//显示错误消息提示

},

//给未通过验证的元素进行处理

highlight : function(element) {

$(element).closest('.form-group').addClass('has-error has-feedback');

},

//验证通过的处理

success : function(label) {

var el=label.closest('.form-group').find("input");

el.next().remove();//与errorPlacement相似

el.after('');

label.closest('.form-group').removeClass('has-error').addClass("has-feedback has-success");

label.remove();

},

});

});

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是Bootstrap+jQuery.validate实现表单验证相关知识介绍,希望大家可以熟练掌握,设计自己的表单验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaFX技巧1:可调整大小的Canvas

在使用FlexGanttFX时&#xff0c;我不得不处理很多JavaFX Canvas节点。 我正在使用它在时间轴上呈现活动。 甘特图中的每一行都是一个Canvas节点。 用户可以选择单独调整每行的大小。 因此&#xff0c;我不得不找出调整画布大小的最佳方法&#xff0c;这种现成的方法无法调整大…

12日疯人认证百度云_12月15日上海实习汇总(百度、美图、哔哩哔哩等)

上海实习实习汇总 | 实习内推 | 寒假实习博世 采购助理Job Title: 采购部实习生Job Description:1. Create Purchase Decision (PD), initiate internal approval workflow.2. Maintain basic data in SAP, SupplyOn, SRM, internal system Pilum .etc.3. Issue purchase order…

15必须阅读Java 8教程

Java 8于上个月发布&#xff0c;其中充满了新功能和幕后优化。 互联网在覆盖所有这些新增加的方面&#xff08;包括好的和坏的&#xff09;一直做得很好。 我认为最好汇总一下我们认为是最好的一些教程&#xff0c;以帮助您快速掌握最新信息和需要了解的知识。 Java 8新功能列…

随机森林和gbdt结合_决策树与迭代决策树(GBDT)

关注数学&#xff0c;关注AI&#xff0c;关注我们公众号ID&#xff1a;Math-AI阅读目录1. 决策树的模型2. 决策树的基本知识3. ID3、C4.5&CART4. Random Forest5. GBDT6. 参考内容今天我们来谈一谈机器学习算法中的各种树形算法&#xff0c;包括ID3、C4.5、CART以及基于集成…

猫眼html源码,50 行代码教你爬取猫眼电影 TOP100 榜所有信息

点击上方“CSDN”&#xff0c;选择“置顶公众号”关键时刻&#xff0c;第一时间送达&#xff01;今天&#xff0c;手把手教你入门 Python 爬虫&#xff0c;爬取猫眼电影 TOP100 榜信息。作者 | 丁彦军本文经授权转自「程序人生」对于 Python 初学者来说&#xff0c;爬虫技能是应…

JuJu团队1月4号工作汇报

JuJu团队1月4号工作汇报 JuJu Scrum 团队成员今日工作剩余任务困难飞飞将model嵌入GUI美化UI无婷婷调试代码提升acc无恩升--写python版本的evaluate.jl无金华修改loader待安排无胡凯--考试无陈灿协调协调无PM报告 整个项目的任务量预期为250 people*hour&#xff0c; 目前已经解…

大数据技术与应用实训心得_GXCGQ16D传感器与检测技术应用实训考核设备

(一)产品概述依据国家人力资源与社会保障部《技工院校工学结合课程教学改革试点工作方案》设计&#xff0c;围绕典型工作任务(即传感器实训模块)确定课程目标&#xff0c;选择课程内容&#xff0c;制定专业教学计划&#xff0c;根据国家职业标准中相关内容。将机电工学结合中有…

IIS 7.5绑定中文域名转码启动站点报“值不在预期的范围内”

问题现象 IIS 7.5在绑定中文域名转码后&#xff0c;启动站点会出现【值不在预期的范围内】&#xff1a; 解决方案此问题是由于中文域名绑定错误导致的&#xff0c;IIS 7.5针对中文域名会自动转换为punycode码&#xff0c;所以不需要绑定punycode码&#xff0c;如果要绑定中文域…

if判断代码 转变为 流程图

转换规则如下&#xff1a; if 代表一个菱形问号 if后面的条件代表菱形里的内容↓yes&#xff08;向下箭头和yes&#xff09; if同级的else代表右拐向下箭头和no 执行语句块代表一个矩形。 if 今天发工资:先还信用卡的钱if 有剩余:又可以happy了&#xff0c;O(∩_∩)O哈哈~else:…

刷新问题

最近新建立了一个MDI多文档工程,但不知道是何原因,只打开MDI父窗体进行界面界面就已经刷新不过来了,如果界面大小变化,更是不堪忍受,不知道是什么原因,而且我已经把窗体设置了不透明.页面的控件都变成模糊的,看不清,如下,请大家帮忙解决.转载于:https://www.cnblogs.com/bluecl…

jenkins修改pom文件_动手实践:美化 Jenkins 报告插件的用户界面

对于 Jenkins 而言&#xff0c;可使用插件来可视化各种构建步骤的结果。有一些插件可用于呈现测试结果、代码覆盖率、静态分析等。这些插件通常都会获取给定构建步骤的构建结果&#xff0c;并在用户界面中显示它们。为了呈现这些细节&#xff0c;大多数插件使用静态 HTML 页面&…

01:saltstack 基本使用

目录&#xff1a;zabbix其他篇 01&#xff1a;saltstack 基本使用 02&#xff1a;saltstack-api使用详解 目录&#xff1a; 1.1 准备实验环境: 安装系统1.2 克隆一台虚拟机完成使用环境1.3 saltstack介绍1.4 saltstack安装 1.5 saltstack常用模块 1.6 salt ssh详解 1.7 Salt Gr…

matlab批量修改txt内容_MATLAB作图实例:18:为饼图添加文本标签和百分比

创建饼图时&#xff0c;MATLAB会用切片所代表的整个饼图的百分比来标记每个饼图切片。您可以更改标签以显示不同的文本。简单文字标签用简单的文本标签创建一个饼图。x [1,2,3];pie(x,{Item A,Item B,Item C})带有百分比和文本的标签创建带有包含自定义文本和每个切片的预先计…

python 怎么算l2范数_数学推导+纯Python实现机器学习算法13:Lasso回归

版权说明&#xff1a;本公号转载文章旨在学习交流&#xff0c;不用于任何商业用途&#xff0c;版权归原作者所有&#xff0c;如有异议&#xff0c;敬请后台联络我们&#xff0c;议定合作或删除&#xff0c;我们将第一时间按版权法规定妥善处理&#xff0c;非常感谢&#xff01;…

Java 8快多少?

Java SE 8已于昨天发布 。 传统上&#xff0c;每个新的主要JRE版本都提供免费的性能提升。 我们还能再得到免费的午餐吗&#xff1f; 这次收益有多大&#xff1f; 让我们对其进行基准测试。 基准方法 使用3个不同的JRE版本&#xff08;SunJDK 1.6.0_26 &#xff0c;OpenJDK 1…

Win10 OpenCV3.3.0+VS2013配置大坑,OpenCV解决方案编译报错“找不到python36_d.lib”错误...

今天因为想要用OpenCV做图像识别&#xff0c;小白一个&#xff0c;在网上找到一个教程&#xff0c;但是需要配置OpenCV3.3.0的环境&#xff0c;于是又在网上找OpenCV3.3.0VS2013&#xff08;因为我之前已经安过了VS2013&#xff09;&#xff0c;前面的都顺利执行&#xff0c;但…

mvp的全称_是让人提神醒脑的 MVP、MVVM 关系精讲!

前言很高兴见到你&#xff01;我是《Jetpack MVVM 精讲》的独立原创作者 KunMinX&#xff0c;GitHub star 8.7k&#xff0c;专注于深度思考和 Jetpack MVVM 的分享。关于 MVP 和 MVVM 本质和区别的文章&#xff0c;本来我是不想写的&#xff0c;因为经过长达一年的耳濡目染 和对…

链家广州二手房的数据与分析——爬取数据

之前在博客分享了利用 R 和 rvest 包爬虫的基础方法。现在就来实战一下&#xff1a;爬取链家网广州 40,000 套二手房的数据。 之前在 Web Scraping with R 说过的爬虫方法在这篇中就不在赘述了。这里就分享怎么样爬取网站中翻页的数据。 >> Web Scraping across Multiple…

Vue脚手架搭建项目

全局安装vue脚手架 $ npm install -g vue-cli 卸载方法 $ npm uninstall -g vue-cli 查看vue版本&#xff08;注意&#xff1a;大写的V&#xff09; $ vue -V 创建项目 $ vue init webpack vue-app ? Project name vue-app ? Project description Vue Project ? Author Pr…

es安全组端口_从零开始在远程服务器(Linux)上搭建es,eshead和ik分词器

一、资源准备远程服务器一个&#xff08;本教程为CentOS 64位&#xff09;注&#xff1a;ik分词器版本需与es版本统一jdk1.8.0elasticsearch-head-master.zip二、开放端口注&#xff1a;本例采用的是阿里云服务器1.登录阿里云&#xff0c;选择控制台2.找到左上角的三条白线--》…