今天來給你們說表單驗證的一個demo,說的很差 歡迎批評,可是謝絕辱罵,謝謝合做!
好了 先上圖:
效果如上圖:用css框架和jquery-validate 作的~~但願有喜歡這個demo的朋友~
好了先說說: 佈局就是用bootstrap作的,這個就不說了,還有那個日曆也是一個插件;詳細傳送門http://www.bootcss.com/p/bootstrap-datetimepicker/
固然,日曆插件也有作的很差的,好比會出現這個,我沒有調過來,還有就是dome頁面我都寫好了註釋了的!
接下來就是validate的引入,在引入前,必需要先引入jquery,由於那個是基於jq寫的,否則會出現不了效果的~要注意哦~~
如圖:
而後就是寫規則:php
$(function(){ //jq寫法 不解釋
css
$('選中form節點').validate({
jquery
rules:{
git
'表單名':{
thinkphp
'驗證規則':對應的驗證規則填寫的值
json
}
bootstrap
},
網絡
messages:{
框架
'表單名(ps:和上面同樣)':{
dom
'驗證規則':對應的驗證錯誤時出現的錯誤提示(ps:如我提供的第一張圖,顯示用戶名已存在的那個錯誤提示同樣)
}
}
});
});
複製代碼
$(function(){
$('#register').validate({//先用jq的選擇器選擇到form表單
rules:{
'username':{
required:true,//這個規則就是必須驗證,也就是必須填寫的意思~
rangelength:[3,17]//這個意思就是用戶名長度是3-17位之間,這裏主要的一點就是漢子是算一個字節的,不是像咱們utf-8的一個漢字算3個字節那樣的。主意哦~~
}
},
messages{
username:{
required:'用戶名必須填寫'//當用戶名沒有填寫的時候提示的錯誤信息
rangelength:'用戶名長度應在3-17位之間'
}
}
})
})
複製代碼
是否是感受很實用,很簡單的代碼就能實線想要的效果!固然這只是一個簡單的一個規則,還有更加複雜的好比驗證用戶名的時候 必須是字母開頭 不容許漢字等等,這個就須要正則了吧,不過,哈哈 我正則不會~~不過我會繼續學習的,我也是一個自學ThinkPHP的一員,
$(function(){
$('#register').validate({
errorElement:'span',
success:function(label){
label.addClass('success');
},
rules:{
'username':{
required:true,
rangelength:[3,17],
remote:{
url:checkUsername,
type:'post',
datatype:'json',
data:{
username:function(){
return $('#username').val();
}
}
}
},
'password':{
required:true,
rangelength:[6,17]
},
'rpassword':{
required:true,
equalTo:'#password'
},
'email':{
required:true,
email:true
},
'sex':{
required:true
},
'birthday':{
required:true,
date:true
},
'address':{
required:true
},
'old':{
required:true,
digits: true,
rangelength:[1,3]
},
'tel':{
required:true,
digits: true,
rangelength:[0,11]
}
},
messages:{
'username':{
required:'用戶名必須填寫',
rangelength:'用戶名長度應在3-17位之間',
remote:'用戶名已存在'
},
'password':{
required:'密碼必須填寫',
rangelength:'密碼必須在6-17位之間'
},
'rpassword':{
required:'確認密碼必須填寫',
equalTo:'兩次密碼不一致'
},
'email':{
required:'郵箱必須填寫',
email:'郵箱格式不正確'
},
'sex':{
required:'請選擇性別'
},
'birthday':{
required:true
},
'address':{
required:'請填寫地址',
date:'日期格式不正確'
},
'old':{
required:'請填寫年齡',
digits: '您輸入的不是數字',
rangelength:'您輸入的年齡不符合格式(ps:嚇死我了)'
},
'tel':{
required:'請填寫電話號碼',
digits: '您輸入的不是數字',
rangelength:'請輸入正確格式的電話號碼(ps:須要11位)'
}
}
});
});
複製代碼
其餘的咱們不說,就來講說remote,這個驗證方法。
//驗證用戶名是否存在
public function checkUsername(){
if(!$this->isAjax()) halt('頁面不存在');//最好作個判斷,
$where = array(
'menbername'=>I('username'),
);
if(M('menber')->where($where)->find()){
echo 'false';//切記這是重點
}else{
echo 'true';
}
}
複製代碼
當存在咱們是要返回字符串格式的false過去,必定要記住啊~否則你會調試代碼很慘的。就像我之前第一次寫同樣,尼瑪 一直髮現沒哪裏有問題,一直調試,心情比大姨媽來了還沉重!