作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章jquery实现简易验证插件封装由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例为大家分享了封装jquery简易验证插件的具体代码,供大家参考,具体内容如下 。
html代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
<!DOCTYPE html>
<
html
lang
=
"en"
>
<
head
>
<
meta
charset
=
"UTF-8"
>
<
title
>jQuery数据校验插件开发</
title
>
<
link
rel
=
"stylesheet"
href
=
"css/register.css"
/>
<
link
rel
=
"stylesheet"
href
=
"css/validate.css"
/>
</
head
>
<
body
>
<
main
>
<
section
>
<
form
method
=
"post"
action
=
"result.html"
ac
id
=
"register"
>
<
div
class
=
"register-wrap"
>
<
div
class
=
"register"
>
<
ul
>
<
li
>
<
label
for
=
"username"
>用户名:</
label
>
<
input
type
=
"text"
id
=
"username"
name
=
"username"
tabindex
=
"1"
class
=
"format-input"
placeholder
=
"请输入用户名"
data-vt-required-msg
=
"用户名不能为空"
data-vt-regexp-msg
=
"用户名必须是以字母、数字、下划线组成,且不能以数字开头(6-20位)"
data-vt-required
=
true
data-vt-regexp
=
'^[\w_]\w{5,19}$'
autofocus>
</
li
>
<
li
>
<
label
for
=
"pwd"
>密码:</
label
>
<
input
type
=
"password"
id
=
"pwd"
name
=
"password"
tabindex
=
"2"
class
=
"format-input"
placeholder
=
"请输入密码"
data-vt-required
=
true
data-vt-regexp
=
"^[a-zA-Z_][\w_]{5,11}$"
data-vt-required-msg
=
"密码不能为空"
data-vt-regexp-msg
=
"密码必须是由字母、数字、下划线组成,且不能以数字开头(6-12位)"
>
</
li
>
<
li
>
<
label
for
=
"confirmPwd"
>确认密码:</
label
>
<
input
type
=
"password"
id
=
"confirmPwd"
name
=
"password"
tabindex
=
"3"
class
=
"format-input"
placeholder
=
"请再次输入密码"
data-vt-required
=
true
data-vt-required-msg
=
"密码不能为空"
data-vt-equals
=
true
data-vt-equals-msg
=
"两次密码不一致"
>
</
li
>
<
li
>
<
label
for
=
"phone"
>手机号:</
label
>
<
input
type
=
"text"
id
=
"phone"
name
=
"phone"
tabindex
=
"4"
class
=
"format-input"
placeholder
=
"请输入手机号"
data-vt-required
=
true
data-vt-phone
=
true
data-vt-required-msg
=
"手机号不能为空"
data-vt-phone-msg
=
"手机号不合法"
>
</
li
>
<
li
>
<
label
for
=
"tel"
>座机:</
label
>
<
input
type
=
"text"
id
=
"tel"
name
=
"tel"
tabindex
=
"5"
class
=
"format-input"
placeholder
=
"请输入座机号码"
data-vt-required
=
true
data-vt-tel
=
true
data-vt-required-msg
=
"座机号不能为空"
data-vt-tel-msg
=
"座机号不合法"
>
</
li
>
<
li
>
<
label
for
=
"email"
>邮箱:</
label
>
<
input
type
=
"text"
id
=
"email"
name
=
"email"
tabindex
=
"6"
class
=
"format-input"
placeholder
=
"请输入邮箱地址"
data-vt-required
=
true
data-vt-email
=
true
data-vt-required-msg
=
"邮箱不能为空"
data-vt-email-msg
=
"邮箱不合法"
>
</
li
>
<
li
>
<
label
for
=
"submitBtn"
></
label
>
<
input
type
=
"submit"
value
=
"注册"
id
=
"submitBtn"
tabindex
=
"7"
class
=
"format-input submit-btn"
>
</
li
>
</
ul
>
</
div
>
</
div
>
</
form
>
</
section
>
</
main
>
<
script
src
=
"js/jquery2.0.js"
></
script
>
<
script
src
=
"js/formValidate.js"
></
script
>
<
script
>
$(function(){
$('#register').formValidate();
});
</
script
>
</
body
>
</
html
>
|
css部分 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
* {
margin
:
0
;
padding
:
0
;
box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
}
ul li {
list-style
:
none
;
position
:
relative
;
}
input {
outline
:
0
;
}
.format-input {
display
: inline-
block
;
width
:
84%
;
height
:
35px
;
padding
:
0
0
0
3px
;
border
:
1px
solid
#fff
;
vertical-align
:
baseline
;
}
:focus {
outline
:
4px
solid
#007fff
;
}
html,
body {
width
:
100%
;
height
:
100%
;
}
body {
min-height
:
100%
;
font
:
12px
/
1.5
'Microsoft YaHei'
,
arial
,
sans-serif
;
background
:
url
(../image/bj.jpg)
no-repeat
;
background-
size
: cover;
overflow
:
hidden
;
}
.register-wrap {
position
:
absolute
;
top
:
0
;
bottom
:
0
;
left
:
0
;
right
:
0
;
width
:
450px
;
height
:
415px
;
margin
:
auto
;
background
: rgba(
0
,
0
,
0
,
0.5
);
}
.register {
width
:
100%
;
height
:
100%
;
padding
:
20px
30px
;
color
:
#fff
;
}
.register > ul > li {
font-size
:
0
;
margin
:
0
0
20px
0
;
}
.register > ul > li label {
display
: inline-
block
;
width
:
16%
;
font-size
:
12px
;
}
.submit-btn {
border
:
1px
solid
transparent
;
font-size
:
18px
;
font-weight
:
bold
;
color
:
#fff
;
background
:
#51a8ff
;
box-shadow:
1px
1px
#AFC4EA
,
2px
2px
#AFC4EA
,
3px
3px
#AFC4EA
;
}
.submit-btn:hover {
cursor
:
pointer
;
}
.submit-btn:focus {
outline
:
none
;
border
:
1px
solid
#f0f3f9
;
}
.submit-btn:active {
border
:
1px
solid
#f0f3f9
;
transform: translate(
1px
,
1px
);
box-shadow:
1px
1px
#AFC4EA
,
2px
2px
#AFC4EA
;
}
|
提示错误的tips样式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
.validate-error-tip {
position
:
absolute
;
top
:
0
;
left
:
0
;
display
: table;
min-width
:
150px
;
min-height
:
35px
;
font-size
:
12px
;
border
:
1px
solid
lightblue;
padding
:
5px
;
background
:
#fff
;
color
:
#666
;
z-index
:
9999
;
}
.validate-error-tip:before {
position
:
absolute
;
top
:
0
;
left
:
-15px
;
display
:
block
;
content
:
''
;
width
:
0
;
height
:
0
;
border-color
:
transparent
lightblue
transparent
transparent
;
/*1、下边框有颜色 对应着上边框没有宽度,是正三角形;2、上边框有颜色 对应着下边框没宽度,是倒三角形*/
border-style
:
solid
;
border-width
:
15px
15px
15px
0
;
}
|
javascript部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
(
function
($, factory, pluginName) {
factory($, pluginName);
})(jQuery,
function
($, pluginName){
//插件默认配置项
var
__DEFAULT__ = {
//默认触发验证的事件为input事件
initEvent:
'input'
,
prefix:
'vt'
//自定义属性前缀
};
//插件内部编写校验规则
var
__RULES__ = {
//正则
regexp:
function
(ruleData) {
return
new
RegExp(ruleData).test(
this
.val());
},
//必填项
required:
function
(ruleData) {
return
$.trim(
this
.val()).length > 0;
},
//最小值
minLength:
function
(ruleData) {
return
$.trim(
this
.val()).length > ruleData ;
},
//最大值
maxLength:
function
(ruleData) {
return
$.trim(
this
.val()).length < ruleData;
},
//验证两次密码是否一致
isEquals:
function
(ruleData) {
var
pwd = $(
':password'
).eq(0);
//$(':password')[0]是什么对象呢?
return
pwd.val() ===
this
.val();
},
//是否是邮箱
isEmail:
function
(ruleData) {
return
/\w+@\w+\..+/g.test(
this
.val());
},
//是不是手机号
isPhone:
function
(ruleData) {
return
/^1\d{10}$/g.test(
this
.val());
},
//是不是座机号码
isTel:
function
(ruleData) {
return
/^0\d{2,3}-\d{7,8}$/g.test(
this
.val());
}
};
$.fn[pluginName] =
function
(options) {
//标识是否提交表单
var
$
this
=
this
;
if
(!$
this
.is(
'form'
)) {
return
; }
//this: 这里的this是jQuery实例对象
$
this
.$file = $
this
.find(
'input:not([type="button"][type="submit"])'
);
//给当前实例对象(也就是调用该插件的jquery对象)添加一个$file的属性
$.extend($
this
, __DEFAULT__, options);
//以默认配置为优先,以用户配置为覆盖
//格式化rule规则。
// 将一个字符串在每一个大写字母前加上一个'-',并且全部转为小写
// vtEmailMsg > vt-email-msg
$
this
.formatRule =
function
(str, connector) {
if
(
typeof
str !==
'string'
) {
return
str;
}
//使用replace、正则(匹配单个大写字母)
str = str.replace(/[A-Z]/g,
function
(match, index) {
if
(index === 0) {
return
match.toLowerCase() }
return
connector + match.toLowerCase();
});
return
str;
};
//显示错误信息
$
this
.showErrorTip =
function
(errorMsg) {
var
$tip = $(
"<div class='validate-error-tip'> </div>"
),
offset =
this
.position(),
elHeight =
this
.outerHeight(),
elWidth =
this
.outerWidth();
if
(
this
.siblings(
'.validate-error-tip'
).length > 0){
this
.siblings(
'.validate-error-tip'
).eq(0).text(errorMsg).show();
}
else
{
$tip.text(errorMsg).
css({
top: offset.top,
left: offset.left + elWidth + 15,
width: $tip.width()
});
this
.after($tip);
$tip.show();
}
};
//监听form表单里所有的input的事件
$
this
.$file.on(
this
.initEvent,
function
(){
var
$input = $(
this
);
//清除错误提示框
$input.siblings(
'.validate-error-tip'
).remove();
//注意这里是循环的我们插件的规则,而不是用户拥有的规则
$.each(__RULES__,
function
(key, fn) {
var
rule =
''
,
errorMsg =
''
;
//如果key是以is字符开头、则去掉is
if
(key.indexOf(
'is'
) === 0) {
key = key.slice(2);
}
key = $
this
.formatRule(key,
'-'
);
//将规则格式化为html中书写的形式
rule = $input.data(__DEFAULT__.prefix +
'-'
+ key);
//获取规则的值
errorMsg = $input.data(__DEFAULT__.prefix +
'-'
+ key +
'-msg'
);
//规则对应的提示信息
//如果当前input有这个规则,则执行这个规则
if
(rule) {
//执行规则测试是否通过
var
isPassed = fn.call($input, rule);
//改变规则函数fn执行时候的this,指向当前input jquery对象
if
(!isPassed) {
//未通过、则错误提示
$
this
.showErrorTip.call($input, errorMsg);
}
}
});
});
//绑定提交表单的事件
this
.on(
'submit'
,
function
(e) {
var
isFormPassed =
true
;
$
this
.$file.trigger($
this
.initEvent);
$
this
.$file.each(
function
(index, current){
var
$current = $(current);
if
($current.siblings(
'.validate-error-tip'
).is(
':visible'
)){
isFormPassed =
false
;
return
false
;
}
});
if
(!isFormPassed) {
return
isFormPassed;
}
});
};
//扩展新的验证规则(实际上就是扩展上面__RULES__对象)
$.fn[pluginName].addRule =
function
(options) {
$.extend(__RULES__, options);
}
},
'formValidate'
);
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://blog.csdn.net/wuzhe128520/article/details/89787798 。
最后此篇关于jquery实现简易验证插件封装的文章就讲到这里了,如果你想了解更多关于jquery实现简易验证插件封装的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在设计一个可在hbase上运行的应用程序,并且希望以交互方式浏览集群的内容。我在hbase shell中,我想对所有以chars“abc”开头的键进行扫描。这样的键可能包括“abc4”,“abc9
我是一名优秀的程序员,十分优秀!