jQuery插件之表單驗(yàn)證插件validationEngine(個人感覺好用)
2010年05月03日 評論( 0 )|瀏覽( 125 ) 點(diǎn) 擊查看原文
功能:Tooltip效果網(wǎng)頁表單校驗(yàn),效果如下圖:
普通驗(yàn)證的例子: http://www.position-relative.net/creation/formValidator/
ajax驗(yàn)證的例子: http://www.position-relative.net/creation/formValidator/demoSubmit.html
這個插件支持大部分的瀏覽器,但由于有使用到了css3的陰影和圓角樣式,所以在IE瀏覽器下無法看到圓角和陰影效果(萬惡的IE)。
插件包含三個文件:
jquery.validationEngine.js //插件主JS文件
jquery.validationEngine-cn.js //驗(yàn)證規(guī)則JS文件
validationEngine.jquery.css //樣式表文件
?
使用方法:
( 1 ) 引入jquery和插件js、css文件
---------------------------------------------------------------------------------------------------------------------
<link rel="stylesheet" href="css/validationEngine.jquery.css" type="text/css" media="screen" charset="utf-8" />
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.validationEngine-cn" type="text/javascript"></script>
<script src="js/jquery.validationEngine.js" type="text/javascript"></script>
---------------------------------------------------------------------------------------------------------------------
?
( 2 ) 初始化插件
在頁面head區(qū)域加入如下代碼:
---------------------------------------------------------------------------------------------------------------------
$(document).ready(function() {
$("#formID").validationEngine() ; //formID是你要驗(yàn)證的表單ID
})
---------------------------------------------------------------------------------------------------------------------
?
( 3 ) 添加表單元素驗(yàn)證規(guī)則
驗(yàn)證規(guī)則寫在表單元素的class屬性內(nèi)即可。如驗(yàn)證text文本框:
---------------------------------------------------------------------------------------------------------------------
<input value="" class="validate[required,custom[noSpecialCaracters],length[0,20],ajax[ajaxUser]]" type="text" name="user" id="user" />
---------------------------------------------------------------------------------------------------------------------
注:本例使用4個驗(yàn)證規(guī)則,各規(guī)則之間以“,”分隔。
required:不可為空
custom[noSpecialCaracters]:不能有特殊字符(這是一個自定義規(guī)則,自定義規(guī)則格式為custom[自定義規(guī)則 名],其中自定義規(guī)則在jquery.validationEngine-cn文件中定義。
length[0,20]:長度必須在0-20位之間。
ajax[ajaxUser]:這是一個Ajax驗(yàn)證,后面詳細(xì)說明。
?
( 4 ) 驗(yàn)證觸發(fā)
你可以在點(diǎn)擊提交按鈕后才觸發(fā)驗(yàn)證
---------------------------------------------------------------------------------------------------------------------
$("#formID").validationEngine({
inlineValidation: false, //在這里修改
success : false,
failure : function() { callFailFunction() }
})
---------------------------------------------------------------------------------------------------------------------
?
默認(rèn)的是在鼠標(biāo)失去焦點(diǎn)后才開始驗(yàn)證,也就是綁定的是blur事件,可修改。
---------------------------------------------------------------------------------------------------------------------
$("#formID").validationEngine({
validationEventTriggers:"keyup blur", //這里增加了個keyup,也就是鍵盤按鍵起來就觸發(fā)驗(yàn)證
success : false,
failure : function() { callFailFunction() }
})
---------------------------------------------------------------------------------------------------------------------
?
( 5) 修改錯誤提示層位置
---------------------------------------------------------------------------------------------------------------------
$("#formID").validationEngine({
promptPosition: "topRight", // 有5種模式 topLeft, topRight, bottomLeft, centerRight, bottomRight
success : false,
failure : function() {
})
---------------------------------------------------------------------------------------------------------------------
?
( 6) Ajax驗(yàn)證
---------------------------------------------------------------------------------------------------------------------
<input name="login_name" type="text" class="validate[ajax[ajaxUser]] text" id="login_name" >
---------------------------------------------------------------------------------------------------------------------
此驗(yàn)證要實(shí)現(xiàn):在文本框中輸入用戶名,文本框失去焦點(diǎn)時檢測用戶名是否已被注冊,如果已被注冊顯示提示“用戶名已被使用”,如果還沒有被注 冊則顯示提示“用戶名可以使用”。
?
此處使用了驗(yàn)證規(guī)則ajax[ajaxUser] ,看看jquery.validationEngine-cn中驗(yàn)證規(guī)則定義:
---------------------------------------------------------------------------------------------------------------------
"ajaxUser":{
"file":"validateUser.asp" //后臺腳本文件,插件會POST三個參數(shù):validateError;validateId;validateValue,后臺腳本直接 request即可
"alertTextOk":"* 用戶名可以使用.",
"alertTextLoad":"* 檢查中, 請稍后...",
"alertText":"* 用戶名已被使用."
},
---------------------------------------------------------------------------------------------------------------------
說明:后臺腳本文件必須返回json格式數(shù)據(jù)。
插件官方提供的示例為php腳本,代碼如下:
---------------------------------------------------------------------------------------------------------------------
<?php
$validateValue=$_POST['validateValue']; //獲取post參數(shù):文本框值
$validateId=$_POST['validateId']; //獲取post參數(shù):文本框ID
$validateError=$_POST['validateError'];
$arrayToJs = array(); //定義json返回數(shù)組,順序必須為validateId、validateError、returnValue
$arrayToJs[0] = $validateId;
$arrayToJs[1] = $validateError;
if($validateValue =="karnius"){ //如果輸入值=karnius
$arrayToJs[2] = "true"; // 返回 TRUE
echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}'; // 驗(yàn)證成功返回json數(shù)組
}else{
for($x=0;$x<1000000;$x++){
if($x == 990000){
$arrayToJs[2] = "false"; // 返回 TRUE
echo '{"jsonValidateReturn":'.json_encode($arrayToJs).'}'; // 驗(yàn)證失敗返回json數(shù)組
}
}
}
?>
---------------------------------------------------------------------------------------------------------------------
由于本人程序使用的是ASP,參考官方提供的php后臺腳本編寫ASP代碼如下:
---------------------------------------------------------------------------------------------------------------------
<%
validateValue = request("validateValue")
validateId = request("validateId")
validateError = request("validateError")
sql="select * from Cms_Personnel where login_name='"&validateValue&"'"
dbCon.sqlStr = sql
set rs = dbCon.rsDB()
if not rs.eof then
response.Write("{'jsonValidateReturn':['"&validateId&"','"&validateError&"','false']}")
else
response.Write("{'jsonValidateReturn':['"&validateId&"','"&validateError&"','true']}")
end if
%>
---------------------------------------------------------------------------------------------------------------------
說明:php的json_encode(mixed $value )函數(shù)能對變量進(jìn)行JSON 編碼。
asp中只要Rsponse
{"jsonValidateReturn":["validateId","validateError","returnValue"]}
形式字串即可。
注意response的JSON數(shù)組元素順序,必須是 validateId、validateError、returnValue 。
---------------------------------------------------------------------------------------------------------------------
最終效果如下:
?
再附一段JAVA的Ajax后臺腳本代碼:
---------------------------------------------------------------------------------------------------------------------
public String vali() {
ActionContext ac = ActionContext.getContext();
HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST);
String validateId = request.getParameter("validateId"); //獲取插件post參數(shù)validateId
logger.info("vali() - String validateId=" + validateId);
String validateValue = request.getParameter("validateValue"); //獲取插件post參數(shù)validateValue
String validateError = request.getParameter("validateError"); //獲取插件post參數(shù)validateError
logger.info("vali() - String validateError=" + validateError);
jsonValidateReturn.add(validateId);
jsonValidateReturn.add(validateError);
if(validateValue.equals("chen"))
jsonValidateReturn.add("true");
else
jsonValidateReturn.add("false");
return SUCCESS;
}
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
