以下代碼實現用戶在提交信息時驗證表單信息是否符合規定,要求必須全部信息的填寫都符合規定之后才能提交數據
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 }