html5表单后面的验证码怎么实现
发布网友
发布时间:2022-04-23 05:15
我来回答
共2个回答
热心网友
时间:2022-04-20 00:15
img标签 从后台获取随机的验证码图片
热心网友
时间:2022-04-20 01:33
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<title>html5 表单验证</title>
</head>
<body>
<form action="#" id="formValid" class="myform" novalidate="novalidate" onsubmit="return checkForm()">
<fieldset>
<div class="form-group">
<label for="name">名称</label>
<div>
<input type="text" class="form-control" id="name" name="name" required/>
<span class="form-error">不能为空</span>
</div>
</div>
<div class="form-group">
<label for="email">邮箱</label>
<div>
<input type="email" class="form-control" id="email" name="email" required/>
<span class="form-error">邮箱格式不正确</span>
</div>
</div>
<div class="form-group">
<label>省份</label>
<select name="province" class="form-control">
<option value="">请选择</option>
<option value="s">四川</option>
<option value="c">重庆</option>
</select>
</div>
<input type="submit" class="btn" value="提交"/>
</fieldset>
</form>
</body>
</html>
css:
fieldset{border: 0;}
.myform .form-control{
display: block;
padding: 5px;
width: 100%
}
.myform input:focus:invalid + .form-error{
display: inline;
}
.myform .form-error{
display: none;
position: absolute;
margin-top: .7em;
padding: 1px 2px;
color: #fff;
font-size: .875rem;
background: #f40;
}
.myform .form-error:after{
position: absolute;
content: "";
top: -.5em;
left: .5em;
z-index: 100;
display: inline-block;
width: 0;
height: 0;
vertical-align: middle;
border-bottom: .5em solid #f40;
border-right: .5em solid transparent;
border-left: .5em solid transparent;
border-top: 0 dotted;
transform: rotate(360deg);
overflow: hidden;
}
.btn{
padding: 5px 20px;
}
js:
function checkForm(){
var myform = document.getElementById("formValid");
return check(myform.elements);
}
function check(eles){
var ele;
for(var i = 0;i<eles.length;i++){
ele = eles[i];
if(ele.nodeName == "SELECT"){
if(!ele.selectedIndex){
alert("请选择省份");
return false;
}
}else if(ele.name){
if(!ele.checkValidity()){
ele.focus();
return false;
}
}
}
return true;
}