JQ实现表单校验

一、trigger和triggerHandler区别

trigger:触发事件,将光标移入框内(比较好)
triggerHandler:仅仅触发事件所对应的函数

完整代码如下:

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

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src="../js/jquery-1.11.0.js"></script>

<script>
$(function(){
$("#username").focus(function(){
console.log("text focus被触发了!"); //控制台输出一句话
});

$("#btn1").click(function(){ //第一个按钮的点击事件
//触发一下text的focus
$("#username").trigger("focus");
});

$("#btn2").click(function(){ //第二个按钮的点击事件
//触发一下text的focus
$("#username").triggerHandler("focus");
});

});

</script>
</head>
<body>
用户名:<input type="text" id="username"><br>
<input type="button" value="triggerH触发一下focus" id="btn1">
<input type="button" value="triggerHandler触发一下focus" id="btn2">
</body>
</html>

代码结果如下:


二、JQ方式实现表单检验

步骤分析:

1.导入相关JQ文件
2.文档加载事件:必填项后加一个小红点
3.表单校验确定事件: blur onfoucs onkeyup
4.提交表单:sumbit

具体操作分析:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1.进行导入相关JQ文件和css文件:
<link rel="stylesheet" type="text/css" href="../css/style.css"/>
<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>

2.放置好一个按钮和三个input然后去找css文件的high类给input的属性加红色*(利用after方法)
$(".bitian").after("<font class='high'>*</font>");

3.给两个input设置blur事件(keyup.focus事件链式(triggerHandler()方法触发))
$(".bitian").blur(function(){}).focus(function(){}).keyup(function(){});

4.通过is()方法判断是密码还是用户名操作
&(this).is("#username"/"password")

5.判断之后提示使用append()方法输出(想要在*之后输出)
$(this).parent().append("<span class='formtips onError'>密码太短了!</span>");

6.输出之后如果不清空(remove()方法)就一直弹出

$(this).parent().find(".formtips").remove();

7.最后就是整个表单提交(JS是所有的true才能提交),JQ是使用trigger("blur")去判断出错长度,出错少于0就成功
$(".bitian").trigger("blur"); //去blur测试会出现错误次数
var length=$(".onError").length;

具体代码如下:

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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="../css/style.css"/>
<script type="text/javascript" src="../js/jquery-1.11.0.js" ></script>
<script>
$(function(){

//在后面加下红点*
$(".bitian").after("<font class='high'>*</font>"); //调用css文件内的high类加载器变红色--在两个input后面加*

//事件绑定
$(".bitian").blur(function(){ //取消焦点事件
var value=this.value;

//清空当前必填项后面的span(不删除之前只要出错就弹出)
$(this).parent().find(".formtips").remove();

//获得当前事件是谁触发
if($(this).is("#username"))
{
//校验用户名
if(value.length<6){
$(this).parent().append("<span class='formtips onError'>用户名太短了!</span>");
}
else{
$(this).parent().append("<span class='formtips onSuccess'>用户名成功了!</span>");
}
}
if($(this).is("#password"))
{
//校验密码
if(value.length<3){
$(this).parent().append("<span class='formtips onError'>密码太短了!</span>");
}
else{
$(this).parent().append("<span class='formtips onSuccess'>密码成功了!</span>");
}
}
}).focus(function(){ //链式
$(this).triggerHandler("blur");
}).keyup(function(){
$(this).triggerHandler("blur");
});

//给表单绑定提交事件
$("form").submit(function(){
//触发必选项的校验逻辑
$(".bitian").trigger("blur"); //去blur测试会出现错误次数
var length=$(".onError").length //去测试这个错误次数的个数
if(length>0){
return false; //如果有错误提示那么就不能提交
}
return true;
});
});

</script>

</head>
<body>
<form action="../index.html" > //跳转到一个页面(自己选)
<div>
用户名:<input type="text" class="bitian" id="username"> /放入同一类
</div>
<div>
密码:<input type="password" class="bitian" id="password">
</div>
<div>
手机号:<input type="tel">
</div>
<div>
<input type="submit">
</div>
</form>
</body>
</html>

代码结果如下:


×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 一、trigger和triggerHandler区别
  2. 2. 二、JQ方式实现表单检验
,