thymeleaf小知识
1、根据不同性别,显明不同的默认图片:th:if
th:src 图片路径
<img th:if="${gender=='男'}" id="admission_photo" th:src="@{/static/images/boy.jpg}" />
<img th:if="${gender=='女'}" id="admission_photo" th:src="@{/static/images/girl.jpg}" />
2、身份证号校验:
var regEx = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
var idcard = $('#idcard').val();//获取用户输入的身份证号码
var result = regEx.test(idcard);
3、手机端H5,同一个页面,分多屏滑动,用swiper
1)引入样式 :<link type="text/css" rel="stylesheet" th:href="@{/static/swiper-3.4.2.min.css}" />
2)定义swiper内容:
<div class="swiper-container swiper-no-swiping">
<div class="swiper-wrapper">
<div class="swiper-slide searchBox">
。。。。。。内容
</div>
<div class="swiper-slide white">
。。。。。。内容
</div>
<div class="swiper-slide">
。。。。。。内容
</div>
</div>
</div>
3)初始化swiper
var swiper;
swiper = new Swiper('.swiper-container', {
simulateTouch : false,
onSlideChangeStart: function(swiper){
var currentIndex = swiper.clickedIndex
var activeIndex = swiper.activeIndex;
if(currentIndex==0 && activeIndex==1){//第一页,滑动到第二页,校验身份证号码
var result = checkIdCard();
if(!result){
layer.msg("请输入正确的身份证号码");
return;
}else{
nextSwiper(activeIndex);
}
}
}
});
其中:
1)simulateTouch : false, 禁止本身滑动动作,通过页面按钮点击来滑动。默认为true,Swiper接受鼠标点击、拖动。不记得是PC还是手机端,有一个无效,加上下面的swiper-no-swiping就都有效了。
swiper-no-swiping:不可拖动块的类名,当noSwiping设置为true时,并且在slide加上此类名,slide无法拖动。
swiper.slideTo(index); 滑动事件,指定滑动到哪一屏,index从0开始。
onSlideChangeStart:监听滑动事件 swiper.clickedIndex 当前屏下标 swiper.activeIndex; 要滑向下一屏的下标
4、人脸识别,打开手机摄像头
video : {
width : 400,
height : 400,
facingMode : "user" //打开前置摄像头
}
video:{ 'facingMode': "user" }//调用前置摄像头 ,对IOS有效,安卓无效
video: { facingMode: { exact: "environment" } }//后置
安卓、IOS都兼容的前置摄像头
const video = document.getElementById('webcam');
const button = document.getElementById('cameraBtn');
let currentStream;
button.addEventListener('click', event => {
nextSwiper(2);
var constraints = {
video: {'facingMode': "user"},
audio: false
};
navigator.mediaDevices.getUserMedia(constraints).then(stream => {
currentStream = stream;
video.srcObject = stream;
return navigator.mediaDevices.enumerateDevices();
})
.catch(error => {
console.error(error);
});
});
5、H5定位
var geolocation;
geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function(r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var pt = r.point;
gc.getLocation(pt, function(rs){
var address = rs.addressComponents;
var mk = new BMap.Marker(r.point);
map.addOverlay(mk);
//map.panTo(r.point);//地图中心点移到当前位置
var latCurrent = r.point.lat;
var lngCurrent = r.point.lng;
//alert('我的位置:'+ latCurrent + ',' + lngCurrent);
var myPoint = new BMap.Point(lngCurrent, latCurrent);
//aDistance = map.getDistance(aPoint, myPoint);
bDistance = map.getDistance(bPoint, myPoint);
pos = {
lat : latCurrent,
lng : lngCurrent,
nation : address.nation==undefined?null:address.nation,
province : address.province==undefined?null:address.province,
city : address.city==undefined?null:address.city,
district : address.district==undefined?null:address.district,
street : address.street==undefined?null:address.street,
streetNumber : address.streetNumber==undefined?null:address.streetNumber,
adcode : address.adcode==undefined?null:address.adcode,
address : rs.address==undefined?null:rs.address,
business : rs.business==undefined?null:rs.business,
}
});
} else {
switch (this.getStatus()) {
case 2:
alert('位置结果未知 获取位置失败.');
break;
case 3:
alert('导航结果未知 获取位置失败..');
break;
case 4:
alert('非法密钥 获取位置失败.');
break;
case 5:
alert('对不起,非法请求位置 获取位置失败.');
break;
case 6:
alert('对不起,当前 没有权限 获取位置失败.');
break;
case 7:
alert('对不起,服务不可用 获取位置失败.');
break;
case 8:
alert('对不起,请求超时 获取位置失败.');
break;
}
}
}, {
enableHighAccuracy: false,//是否要求高精度的地理位置信息
timeout: 30000,//对地理位置信息的获取操作做超时限制,如果再该事件内未获取到地理位置信息,将返回错误
maximumAge:10*1000//设置缓存有效时间,在该时间段内,获取的地理位置信息还是设置此时间段之前的那次获得的信息,超过这段时间缓存的位置信息会被废弃
})
}
6、手机上按钮禁用手机系统的菜单
window.oncontextmenu = function(){return false;} 适用于安卓,IOS10以下才行
7、只选年的日期控件:WdatePicker
可以只选年,或只选月日,或只选时间

<input id="value" type="text" name="value" placeholder="" class="Wdate myFull"
onFocus="WdatePicker({ isShowClear:false,readOnly:true , dateFmt:'yyyy',onpicked:function(){} })"
value="${config.value}" style="height:32px;"/>
只选小时分钟的时间控件 dateFmt:'HH:mm'
<div class="col-xs-4 nopadding"><label>开始时间</label></div>
<div class="col-xs-8 nopadding">
<input id="appoint_time_begin" type="text" name="appoint_time_begin" class="Wdate myFull timebox"
onFocus="WdatePicker({ isShowClear:false,readOnly:true , dateFmt:'HH:mm',onpicked:function(){} })"
value="${setting.appoint_time_begin}" style="height:32px;"/>
</div>
thymeleaf小知识的更多相关文章
- 蓝牙Bluetooth技术小知识
蓝牙Bluetooth技术以及广泛的应用于各种设备,并将继续在物联网IoT领域担任重要角色.下面搜集整理了一些关于蓝牙技术的小知识,以备参考. 蓝牙Bluetooth技术始创于1994年,其名字来源于 ...
- HTML+CSS中的一些小知识
今天分享一些HTML.CSS的小知识,希望能够对大家有所帮助! 1.解决网页乱码的问题:最重要的是要保证各个环节的字符编码一致! (1)编辑器的编辑环境的字符集(默认字符集):Crtl+U 常见的编码 ...
- iOS APP开发的小知识(分享)
亿合科技小编发现从2007年第一款智能手机横空出世,由此开启了人们的移动智能时代.我们从一开始对APP的陌生,到现在的爱不释手,可见APP开发的出现对我们的生活改变有多巨大.而iOS AP ...
- Unix系统小知识(转)
Unix操作系统的小知识 2.VI添加行号/翻页/清屏 .在对话模式时(即输完Esc再输入: ),输入“:set number”可以将编辑的文本加上行号.跟玩俄罗斯方块一样方便的上下左右移动箭头的快捷 ...
- salesforce 零基础开发入门学习(十)IDE便捷小知识
在这里介绍两个IDE的便捷开发的小知识. 一) 本地调试 由于salesforce代码只能提交以后才能调试,所以很多时候调试代码很麻烦.新版增加了一个特性:即可以在本地调试相关的代码或者查看相关代码运 ...
- Jquery:小知识;
Jquery:小知识: jQuery学习笔记(二):this相关问题及选择器 上一节的遗留问题,关于this的相关问题,先来解决一下. this的相关问题 this指代的是什么 这个应该是比较好理 ...
- HTML小知识---Label
今天知道了一个html小知识: <input type="checkbox" id="chkVersion" /> ...
- Unicode和汉字编码小知识
Unicode和汉字编码小知识 将汉字进行UNICODE编码,如:“王”编码后就成了“\王”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的 ...
- Java异常的一个小知识
有以下两个代码: package com.lk.A; public class Test3 { public static void main(String[] args) { try { int a ...
随机推荐
- java 分布式实践
java 分布式实践 spring boot cloud实践 开源的全链路跟踪很多,比如 Spring Cloud Sleuth + Zipkin,国内有美团的 CAT 等等. 其目的就是当一个请求经 ...
- 什么是Java多线程?
第五阶段 多线程 前言: 一个场景:周末,带着并不存在的女票去看电影,无论是现场买票也好,又或是手机买票也好,上一秒还有位置,迟钝了一下以后,就显示该座位已经无法选中,一不留神就没有座位了,影院的票是 ...
- web前端页面解决中文传参乱码问题
问题背景:在项目中往往会涉及到前端跳转页面时要传一些参数给下一个页面,如果参数是英文或者数字的时候就很好解决,然而有时候传参会涉及到中文汉字,这个时候再单纯的拼接往往就会导致中文乱码,下面我们就该讨论 ...
- c++:论如何成功把自己搞懵【二叉树特辑①】(不定期更新)
并不正经的前言 以前我这个小白看OI的书,老觉得有些东西很高端(看不懂的自然就很高端[滑稽]):什么栈啊,位运算啊,二叉树啊.有些东西我学了之后也很迷糊(真的不是因为傻?),做题的时候总是可以把自己搞 ...
- POJ 1742 (单调队列优化多重背包+混合背包)
(点击此处查看原题) 题意分析 给你n种不同价值的硬币,价值为val[1],val[2]...val[n],每种价值的硬币有num[1],num[2]...num[n]个,问使用这n种硬币可以凑齐[1 ...
- python-----模块【第一部分】-----
一.hashlib(md5) import hashlib obj = hashlib.md5('dsfd'.encode('utf-8')) obj.update('123'.encode('utf ...
- 用shell脚本安装MySQL-5.7.22-官方版本多实例
Install_CentOS7_MySQL57_multi_instance.sh #!/bin/bash #请提前准备好参数文件my.cnf PORT=3307 InitMySQL() { mkdi ...
- 【AC自动机】文本生成器
[题目链接] https://loj.ac/problem/10063 [题意] 给出长度为m,n个模式串,请问只要长度为m的串中有一个模式串就算是可读. [分析] 其实如果直接分析全部可读的情况,一 ...
- C# 读取本地图片
/// <summary> /// 通过FileStream 来打开文件,这样就可以实现不锁定Image文件,到时可以让多用户同时访问Image文件 /// </summary> ...
- MySql学习- 存储引擎简介
mysql可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎. 每一种存储引擎使用不同的存储机制.索引技巧.锁定水平,最终提供广泛且不同的功能. MySQL支持的存储引擎: MyISA ...