Thymeleaf使用bootstrap及其bootstrap相关插件(一)

时间:2022-08-29 20:53:12

Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。

在完成信息录入界面中使用到了Thymeleaf+bootstrap组合,bootstrap自带的栅格系统在布局方面使用起来方便,提供的样式、组件也很多,在完善这个信息表单的过程中,想重点介绍以下几个基于bootstrap的插件。

1、bootstrapValidator:表单验证神器

2、bootstrap-datetimepicker:时间选择控件

3、bootstrap-select:下拉选择控件

4、toastr : 提示信息组件

使用这些控件需要在thymeleaf页面中引入如下(这些css、jss文件可到相应官网下载)

<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>信息登记</title> <link th:href="@{/Bootstrap/bootstrap/css/bootstrap.min.css}" rel="stylesheet" />
<link th:href="@{/Bootstrap/bootstrapvalidator/css/bootstrapValidator.min.css}" rel="stylesheet" />
<link th:href="@{/Bootstrap/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css}" rel="stylesheet" />
<link th:href="@{/Bootstrap/bootstrap-select/css/bootstrap-select.min.css}" rel="stylesheet" />
<link th:href="@{/Bootstrap/bootstrap-toastr/css/toastr.min.css}" rel="stylesheet" /> <script th:src="@{/js/jquery-3.2.1.min.js}"></script>
<script th:src="@{/Bootstrap/bootstrap/js/bootstrap.min.js}"></script>
<script th:src="@{/Bootstrap/bootstrapvalidator/js/bootstrapValidator.min.js}"></script>
<script th:src="@{/Bootstrap/bootstrapvalidator/js/language/zh_CN.js}"></script>
<script th:src="@{/Bootstrap/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js}"></script>
<script th:src="@{/Bootstrap/bootstrap-datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js}"></script>
<script th:src="@{/Bootstrap/bootstrap-select/js/bootstrap-select.min.js}"></script>
<script th:src="@{/Bootstrap/bootstrap-select/js/i18n/defaults-zh_CN.min.js}"></script>
<script th:src="@{/Bootstrap/bootstrap-toastr/js/toastr.min.js}"></script> </head>

首先是bootstrapValidator使用,可参考http://blog.csdn.net/u013938465/article/details/53507109,有非常详细的使用介绍。

说下在使用bootstrapValidator的过程中遇到的问题:

当表单属性过多需要每行并列多个属性 ,会出现校验第一个属性,发现整行被校验的效果 ,这不是我们工作想要的效果。如图:

Thymeleaf使用bootstrap及其bootstrap相关插件(一)

问题分析:因为bootstrapValidator默认情况是根据form-group样式验证提示,若我们代码中将同行显示属性放在一个form-group中,就会出现该问题,那么怎么解决呢 ,lz仔细阅读了该插件官网,发现存在group属性,其值默认为“.form-group”,该属性便是官方提供的在多个属性分组情况使用。

解决方案:首先html修改代码,注意增加了<div class="rowGroup">

<div class="form-group">
**<div class="rowGroup">**
<label class="col-md-2 control-label">供应商编号:</label>
<div class="col-md-2">
<input type="text" class="form-control" id="code" name="code" value = "" >
</div>
</div>
<div class="rowGroup">
<label class="col-md-2 control-label">供应商名称:</label>
<div class="col-md-2">
<input type="text" class="form-control" id="name" name="name" value="">
</div>
</div>
<div class="rowGroup">
<label class="col-md-2 control-label">供应商类型:</label>
<div class="col-md-2">
<select class="show-tick form-control" data-live-search="true" id="type" name="type">
</select>
</div>
</div>
</div>

JS修改代码:

$('#supplierForm').bootstrapValidator({
container: 'tooltip',
group: '.rowGroup',
message : '数据错误',
excluded: ':disabled',
feedbackIcons: {
valid: 'fa fa-check',
invalid: 'fa fa-times',
validating: 'fa fa-refresh'
},
fields: {
code: {
validators: {
notEmpty: {
message: '供应商编号为空'
},
},
},
//其他属性略
},
submitHandler: function (validator, form, submitButton) {
validator.defaultSubmit();
}
});

结果图: Thymeleaf使用bootstrap及其bootstrap相关插件(一)问题得以解决!

这边记录一下特殊的校验方式:

1、身份证的校验:

           bs_idno: {
validators: {
notEmpty: {
message: '身份证号不能为空'
},
regexp:{
regexp : /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
message: '请输入有效身份证号'
} }
}

2、手机号码的校验:

                bs_phone: {
validators: {
notEmpty: {
message: '手机号码不能为空'
},
stringLength: {
min: 11,
max: 11,
message: '请输入11位手机号码'
},
regexp: {
regexp: /^1[3|5|8]{1}[0-9]{9}$/,
message: '请输入正确的手机号码'
}
}
}

3、中文姓名的校验:

             bs_name: {
validators: {
notEmpty: {
message: '姓名不能为空'
},
regexp:{
regexp : /^[\u4e00-\u9fa5]*$/,
message: '请输入中文姓名'
} }
}

后续几个组件下一篇再记录了。

Thymeleaf使用bootstrap及其bootstrap相关插件(一)的更多相关文章

  1. Bootstrap表单验证插件bootstrapValidator使用方法整理

    插件介绍 先上一个图: 下载地址:https://github.com/nghuuphuoc/bootstrapvalidator 使用方法:http://www.cnblogs.com/huangc ...

  2. &lbrack;bootstrap&rsqb; bootstrap 简介和相关网址

    Bootstrap 来自 Twitter,是目前很受欢迎的前端框架. 基于 HTML.CSS.JAVASCRIPT ,简洁灵活,使 Web 开发更加快捷. Bootstrap提供了优雅的HTML和CS ...

  3. 【转】bootstrap 的 affix&period;js 插件

    我觉得 Twitter Bootstrap 提供的 JavaScript 插件可用性非常高,但文档多数简单.按部就班操作了,有效果当然好,没效果的话简直不知道为什么.之前我写过 Scrollspy 用 ...

  4. 【Bootstrap】优秀小插件收集

    Bootstrap中不乏很多优秀的小插件来让界面更加漂亮.比如之前做过笔记的bootstrap-fileinput,select2,datetimepicker等都是属于这一系列的.这些相对而言比较大 ...

  5. python 全栈开发,Day58&lpar;bootstrap组件&comma;bootstrap JavaScript 插件&comma;后台模板&comma;图表插件&comma;jQuery插件库&comma;Animate&period;css&comma;swiper&comma;运行vue项目&rpar;

    一.bootstrap组件 无数可复用的组件,包括字体图标.下拉菜单.导航.警告框.弹出框等更多功能. 组件和插件的区别? 插件:一个功能,比如js文件 组件:html css js 组件包含插件 面 ...

  6. Bootstrap支持的JavaScript插件

    1.导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaSc ...

  7. Bootstrap的js分页插件属性介绍

    Bootstrap Paginator是一款基于Bootstrap的js分页插件,功能很丰富,个人觉得这款插件已经无可挑剔了.它提供了一系列的参数用来支持用户的定 制,提供了公共的方法可随时获得插件状 ...

  8. 一款基于Bootstrap的js分页插件bootstrap-paginator使用实例

    Bootstrap Paginator是一款基于Bootstrap的js分页插件,功能很丰富.它提供了一系列的参数用来支持用户的定制,提供了公共的方法可随时获得插件状态的改变,以及事件来监听用户的动作 ...

  9. bootstrap 支持的JavaScript插件

    一次性导入: Bootstrap提供了一个单一的文件,这个文件包含了Bootstrap的所有JavaScript插件,即bootstrap.js(压缩版本:bootstrap.min.js). 具体使 ...

随机推荐

  1. Core Java Volume I — 5&period;1&period; Classes&comma; Superclasses&comma; and Subclasses

    5.1. Classes, Superclasses, and SubclassesLet's return to the Employee class that we discussed in th ...

  2. 快速同步GitHub代码库

    因伟大的墙的存在,github下载速度奇慢, 简单办法,在csdn code建一个账号,然后创建工程的时候选择导入模式, 填入github的项目git URL. 然后.. 从csdn的code下载就快 ...

  3. MySQL基础之第11章 插入、更新与删除数据

    11.1.插入数据 11.1.1.为表的所有字段插入数据 1.INSERT语句中不指定具体的字段名         insert into 表名 values (值1,值2…值n)2.INSERT语句 ...

  4. APMServ5&period;2&period;6 &plus; xdebug &plus; notepad&plus;&plus;调试环境配置

    (原创文章,转载请注明出处:http://www.cnblogs.com/qzhforthelife/archive/2013/06/21/3147772.html) 刚整了两个多小时才把这个调试环境 ...

  5. touchend事件的preventDefault阻止掉了click事件

    <div id="box">box</div> <script> var isTouchDevice = function() { return ...

  6. 【集美大学1411&lowbar;助教博客】团队作业10——项目复审与事后分析(Beta版本)

    写在前面的话 软件工程课结束了,大家开心吗?是不是再也不用熬夜写代码了?如果这门课你真的熬夜写代码了,相信你一定有收获,如果这门课结束了你觉得是自己一个全新的开始,那么这门课的意义就实现了.团队作业全 ...

  7. 关于element-ui表格table设置header-cell-class-name样式不起作用的原因分析

    在编写表格的时候想给表头添加样式,使用 header-cell-class-name怎么都添加不上样式,检查元素发现连class都没添加上,查了很多资料有人说element之前版本不支持这属性,但我使 ...

  8. python进阶&lpar;三&rpar; 内建函数getattr工厂模式

    getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.  传入不同的字符串,调用的方法不一样. 原型:getattr(对象,方法名) 举个栗子: pyMethod类 ...

  9. Base64 JAVA后台编码与JS前台解码(解决中文乱码问题)

    中文通过Java后台进行Base64编码后传到前台,通过JS进行Base64解码时会出现中文乱码的问题,被这个问题也是困扰了几天,使用jquery.base64.js只能转码非中文字符,经过搜集各种方 ...

  10. &lbrack;Linux&rsqb; 复制文件夹下指定创建时间的文件

    暂时不知道什么命令可以达到这个目标,目前的方法是分步进行: 首先,找出指定创建时间内的文件名 例如在imgs文件夹中,找出创建时间在一天内的文件 > feb_files.txt 然后将这些文件复 ...