一、問題描述
在jsp頁面填寫表單時(尤其是在用戶註冊時),需要對用戶輸入的內容進行實時校驗,防止用戶填錯。如果通過<input>標籤失去焦點再調用相關方法進行校驗比較繁瑣。
二、原因分析
使用<input>失去焦點再調用相關方法比較繁瑣,不適用。
三、解決措施(使用validate插件進行校驗)
1、引入validate插件。該插件是在jQuery插件的基礎上的,所以在引入該插件前需要先引入jQuery插件。
2、編寫Script代碼。
表單驗證的格式:$("form表單的選擇器").validate(json數據格式); //鍵值對 鍵:值({})
json數據格式:
{
rules:{
表單項name值:校驗規則,
表單項name值:校驗規則... ...
},
messages:{
表單項name值:錯誤提示信息,
表單項name值:錯誤提示信息... ...
}
}
其中:校驗規則,可以是一個也可以是多個,如果是多個使用json格式。
示例:對用戶名進行校驗。在$(function()){}中通過id找到需要進行校驗的表單,並通過validate()方法進行校驗。方法是:在()內均爲JSON格式的數據,校驗規則rules:{規則},校驗不通過的提示信息messages:{提示信息}。具體代碼如下:
$(function(){
$("#registerform").validate({
rules:{//校驗規則關鍵字
username:{//需要校驗的輸入框名稱(注意:輸入框只能通過其name屬性獲得,無法通過ID等方式獲得)
required:true,//是否必須填寫
rangelength:[3,12]//長度要求
}
},
messages:{//校驗不通過時的提示信息
username:{//與規則裏面的名稱對應
required:"用戶名不能爲空!",//校驗不通過的提示信息(這裏是必填而未填的提示信息)
rangelength:$.validator.format("用戶名長度在必須爲:{0}-{1}之間")//校驗不通過的提示信息(這裏是長度不符合要求)
}
}
});
});
說明:在rules和messages裏面的username都是<input>的name屬性。
3、validate其他具體的規則條件請查閱API文檔。
常用校驗規則如下: