jQuery实现表单验证及提交
以下代码实现用户在提交信息时验证表单信息是否符合规定,要求必须全部信息的填写都符合规定之后才能提交数据
html
<div class="aaaaa" style="width: 95vw;height:70vw;margin: 0 auto;"> <div style="color: red;"> *请填入个人信息,完成报名 </div> <div class="list"> <div>姓名:</div> <input name="name" type="text"> </div> <div class="list"> <div>年龄:</div> <input name="age" type="text"> </div> <div class="list"> <div>联系电话:</div> <input name="tel" type="text"> </div> <div class="list"> <div>家庭住址:</div> <input name="address" type="text"> </div> <div id="submit" style="text-align: center;margin-top: 4vw"> <div style="padding: 2vw 6vw;background-color:limegreen;color:white;font-size:5vw;letter-spacing:1vw;border-radius: 1vw;"> 确认报名 </div> </div> </div>
css
.list{ display: flex; flex-direction: row; justify-content: space-around; align-items:center; border-bottom: 1px solid #e4e4e4; padding: 2vw 0; font-size: 5vw; } .list div{ width: 30%; text-align: right; } .list input{ width: 70%; height:8vw; border-style: none; background-color: transparent; }
jquery
$('#submit').click(function () {
var name = $('[name=name]').val();
var age = $('[name=age]').val();
var tel = $('[name=tel]').val();
var address = $('[name=address]').val();
//验证姓名
if (name != '') {
var names = parseInt(name);//验证是否为数字
if(isNaN(names)){
if(/[@#\$%\^&\*]+/gi.test(name)) { //验证是否含有特殊字符
alert('姓名不能带有特殊字符')
return
}
if (name.length > 6){
alert('姓名长度不符合规定,请输入六个或以下汉字')
return
}
} else{
alert("姓名不能是数字");
return
}
}else{
alert('用户名不能为空')
return
}
//验证年龄
if (age != '') {
var ages = parseInt(age);//验证是否为数字,如果变量age是字符类型的数则转换为int类型 如果不是则ages为NaN
if(!isNaN(ages)){
if (ages > 120 || ages<0){//验证年龄字段是否合法,这里取0-120岁
alert('请输入正确的年龄')
return
}
} else{
alert("'"+age+"'" +"不是数字");
return
}
}else{
alert('年龄不能为空')
return
}
//验证联系电话
if (tel != '') {
var tels = parseInt(tel);//验证是否为数字
if(!isNaN(tels)){
var reg = /(1[3-9]\d{9}$)/;
if (!reg.test(tel)) { //验证手机号码格式
alert("请输入正确格式的手机号码!");
return false;
}
} else{
alert("联系电话必须是数字");
return
}
}else{
alert('联系电话不能为空')
return
}
//验证地址
if (address != '') {
var addresss = parseInt(address);//验证是否为数字
if(isNaN(addresss)){
if (address.length < 3){
alert('地址长度不符合规定,请输入至少3个汉字')
return
}
} else{
alert("地址不能是数字");
return
}
}else{
alert('地址不能为空')
return
}
$.ajax({
url: "?op=submitApply", // 提交到controller的url路径,在本页面就直接用?代替文件名即可,省略文件名,别的页面则需写全路径
type: "post", // 提交方式
data: {"name": name,"age":age,'tel':tel,'address':address}, // data为String类型,必须为 Key/Value 格式。
dataType: "json", // 服务器端返回的数据类型
success: function (data) { // 请求成功后的回调函数,其中的参数data为controller返回的map,也就是说,@ResponseBody将返回的map转化为JSON格式的数据,然后通过data这个参数取JSON数据中的值
if (data.code==1){
alert('报名成功!')
location.href='index.php';
}
},
});
})
最终实现界面如下

补漏:若有需要邮箱验证的可以用这段验证代码,html和变量声明根据电话的格式自行补上
//验证邮箱 if (mail!= '') { var mails = parseInt(mail);//验证是否为数字 if(!isNaN(mails)){ //正则表达式验证电子邮件格式 var reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; // var reg2 = /(\d{4})-(\d{7})/; if (!reg.test(mail) ) { alert("请输入正确格式的电子邮件地址!"); return false; } } else{ alert("邮箱不能全是数字"); return } }else{ alert('邮箱不能为空') return }

浙公网安备 33010602011771号