婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET中實現jQuery Validation-Engine的Ajax驗證

ASP.NET中實現jQuery Validation-Engine的Ajax驗證

熱門標簽:海外地圖標注門市標 陜西人工外呼系統哪家好 山西防封卡電銷卡套餐 云南外呼電銷機器人系統 上海楊浦怎么申請申請400電話 地圖標注多個行程 銅川小型外呼系統運營商 浙江外呼系統怎么安裝 廈門商鋪地圖標注
見下圖:

驗證的例子:http://www.position-relative.net/creation/formValidator/

官方地址: http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/

這個插件支持大部分的瀏覽器,但由于有使用到了css3的陰影和圓角樣式,所以在IE瀏覽器下無法看到圓角和陰影效果(IE 9 支持圓角效果)。

本文主要內容是:在ASP.NET中實現AJAX驗證功能。官方給出的Ajax驗證例子是PHP的實例,筆者在網站查閱的資料基本都是翻譯的官網,在ASP.NET中實現普通驗證是沒有問題的。但是,不能實現Ajax驗證,這應該是個bug。筆者研究了插件代碼,給出我自己的一種解決方案,要在ASP.NET實現這種效果,必須修改官方的主JS文件,當然同學們可以根據筆者的思路進行挖掘,歡迎補充!實現效果見下圖:

具體怎么使用這個插件,用搜索引擎能找到很多答案,筆者在這里簡單啰嗦一下,照顧下新同學。首先我們的下載插件包,上面是官方的下載地址。
插件包我們用的主要是三個文件:
jquery.validationEngine.js //插件主JS文件
jquery.validationEngine-cn.js //驗證規則JS文件
validationEngine.jquery.css //樣式表文件
當然,這個插件是jQuery的第三方插件,所以先要應用jquery的核心庫,筆者測試jquery 1.6.1 是沒有問題的。
1.引入jquery和插件js、css文件
link href="Scripts/Validation-Engine/css/validationEngine.jquery.css" rel="stylesheet" type="text/css" />
script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript">/script>
script src="Scripts/Validation-Engine/js/jquery.validationEngine.js" type="text/javascript">/script>
script src="Scripts/Validation-Engine/js/languages/jquery.validationEngine-zh_CN.js" type="text/javascript">/script>
2.初始化插件,在頁面head區域加入如下代碼:
復制代碼 代碼如下:

$(document).ready(function() {
$("#formID").validationEngine() ; //formID是你要驗證的表單ID
})

3.添加表單元素驗證規則,常用的驗證規則上面官方地址有說明,還可以百度一下,這個不是難點。
input id="Text3" type="text" class="validate[required,ajax[ajaxUsers]]" />
多個驗證多逗號隔開
4.驗證觸發
復制代碼 代碼如下:

$("#formID").validationEngine({
inlineValidation: false, //在這里修改
success : false,
alidationEventTriggers:"keyup blur", //這里增加了個keyup,也就是鍵盤按鍵起來就觸發驗證
promptPosition: "topRight", // 有5種模式 topLeft, topRight, bottomLeft, centerRight, bottomRight
failure : function() { callFailFunction() }
})

5.Ajax驗證,好了,這里是才是問題所在,在分析問題之前我們先看下Validation-Engine主JS文件是怎樣實現Ajax驗證的。打開jquery.validationEngine.js文件,Ctrl+F用查找"$.ajax"文檔中能找到兩處,我們要修改的是第二處,見下面折疊的官方源代碼,
官方jquery.validationEngine.js 文件中的關鍵代碼
復制代碼 代碼如下:

官方jquery.validationEngine.js 文件中的關鍵代碼
$.ajax({
type: options.ajaxFormValidationMethod,
url: rule.url,
cache: false,
dataType: "json",
data: "fieldId=" + field.attr("id") + "fieldValue=" + field.val() + "extraData=" + extraData + "" + extraDataDynamic,
field: field,
rule: rule,
methods: methods,
options: options,
beforeSend: function() {
// build the loading prompt
var loadingText = rule.alertTextLoad;
if (loadingText)
methods._showPrompt(field, loadingText, "load", true, options);
},
error: function(data, transport) {
methods._ajaxError(data, transport);
},
success: function(json) {
// asynchronously called on success, data is the json answer from the server
var errorFieldId = json[0];
//var errorField = $($("#" + errorFieldId)[0]);
var errorField = $($("input[id='" + errorFieldId +"']")[0]);
// make sure we found the element
if (errorField.length == 1) {
var status = json[1];
// read the optional msg from the server
var msg = json[2];
if (!status) {
// Houston we got a problem - display an red prompt
options.ajaxValidCache[errorFieldId] = false;
options.isError = true;
// resolve the msg prompt
if(msg) {
if (options.allrules[msg]) {
var txt = options.allrules[msg].alertText;
if (txt)
msg = txt;
}
}
else
msg = rule.alertText;
methods._showPrompt(errorField, msg, "", true, options);
} else {
if (options.ajaxValidCache[errorFieldId] !== undefined)
options.ajaxValidCache[errorFieldId] = true;
// resolves the msg prompt
if(msg) {
if (options.allrules[msg]) {
var txt = options.allrules[msg].alertTextOk;
if (txt)
msg = txt;
}
}
else
msg = rule.alertTextOk;
// see if we should display a green prompt
if (msg)
methods._showPrompt(errorField, msg, "pass", true, options);
else
methods._closePrompt(errorField);
}
}
errorField.trigger("jqv.field.result", [errorField, options.isError, msg]);
}
});

從上面官方源碼分析,這里的AJAX驗證機制也是基于jQuery的$.AJAX()方法。為了找到插件無法驗證的問題,筆者用jQuery手寫了一個$.AJAX()請求,來驗證jquery.validationEngine.js中的AJAX驗證。
5.1 第一步,創建后臺處理程序,這里創建一般處理程序為例子,代碼如下:
復制代碼 代碼如下:

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
HttpContext _content = HttpContext.Current;
string validateId = _content.Request["fieldId"];
string validateValue = _content.Request["fieldValue"];
string validateError = _content.Request["extraData"];
string str;
if (validateValue == "abc")
str = "{\"jsonValidateReturn\":[\"" + validateId + "\",\"" + validateError + "\",true]}";
else
str = "{\"jsonValidateReturn\":[\"" + validateId + "\",\"" + validateError + "\",false]}";
context.Response.Write(str);
}

這里注意了:在AJAX驗證的時候,會POST三個核心參數到后臺,fieldId、fieldValue、extraData,當然還可自定義其它的參數傳遞過來
5.2 第二步,創建一個aspx頁面仿照Validation-Engine的JS寫個AJAX請求,代碼如下:
復制代碼 代碼如下:

演示頁面
%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FormValidation.aspx.cs" Inherits="DemoWeb.FormValidation" %>
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head runat="server">
title>jQuery表單驗證 - Validation-Engine/title>
link href="Scripts/Validation-Engine/css/validationEngine.jquery.css" rel="stylesheet" type="text/css" />
script src="Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript">/script>
script src="Scripts/Validation-Engine/js/jquery.validationEngine.js" type="text/javascript">/script>
script src="Scripts/Validation-Engine/js/languages/jquery.validationEngine-zh_CN.js" type="text/javascript">/script>
script type="text/javascript">
$(document).ready(function () {
$("#formID").validationEngine({
ajaxFormValidation: true
});
$.ajax({
type: "get",
url: "AjaxBackstage/AjaxValidation.ashx",
cache: false,
data: { "fieldId": "Text4", "fieldValue": "haha", "extraData": "nowtime2012" },
dataType: "json",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("錯誤!XMLHttpRequest.status=" + XMLHttpRequest.status + ",XMLHttpRequest.readyState=" + XMLHttpRequest.readyState + ",textStatus=" + textStatus);
},
success: function (json) {
alert("你好,成功了!"+json.jsonValidateReturn[0] + ", " + json.jsonValidateReturn[1] + "," + json.jsonValidateReturn[2]);
}
});
});
/script>
/head>
body>
form id="formID" runat="server">
h2>
jQuery - Validation-Engine - Ajax驗證
/h2>
br />
p>
Ajax:input id="Text3" type="text" class="validate[required,ajax[ajaxUsers]]" />
/p>
p>
Ajax:input id="Text4" type="text" class="validate[ajax[ajaxUsers]]"/>
/p>
p>
Ajax:input id="Text1" type="text" class="validate[required]"/>
/p>
/form>
/body>
/html>

url: "AjaxBackstage/AjaxValidation.ashx" 這里指向剛才創建的一般處理程序
調試結果返回的是正確的json格式的數據會執行 succes下面的函數,否則執行error下面的函數,下面看一下效果

 

返回出現錯誤時,是無法完成Validation-Engine的AJAX驗證的。這里顯示顯示錯誤是"pars error" 編譯器錯誤,根本原因還是返回數據的問題。下面是后臺處理程序的返回數據的部分,筆者測試,字段不能用單引號,否則見上圖效果,所以這里用傳遞的數據用雙引號引起來。
復制代碼 代碼如下:

string str;
if (validateValue == "abc")
str = "{\"jsonValidateReturn\":[\"" + validateId + "\",\"" + validateError + "\",true]}";
else
str = "{\"jsonValidateReturn\":[\"" + validateId + "\",\"" + validateError + "\",false]}";
//if (validateValue == "abc")
// str = "{'jsonValidateReturn':['" + validateId + "','" + validateError + "',true]}";
//else
// str = "{'jsonValidateReturn\":['" + validateId + "','" + validateError + "',false]}";

數據請求成功:

5.3 第三步,根據上面的例子給jquery.validationEngine.js文件動動“手術”,參考上面第5條。jsonValidateReturn ?對,關鍵就在這個地方,官方版本是PHP的例子在傳遞的json數據有點小區別,導致json[0]獲取不到數據。所以在本例中json.jsonValidateReturn[index]獲取的數據才正常。當然你不喜歡這個名稱jsonValidateReturn也可以自己定義一個名稱,但前提必須是后臺傳遞數據時的名稱和這里的名稱是一致的。
復制代碼 代碼如下:

// 異步調用成功,數據是從服務器的JSON答案
// 改動地方,原來jvar errorFieldId =json[0] 在asp.Net中是獲取不到數據的
// 改成下面的方式,注意jsonValidateReturn這里名稱定死了,在AJAX后臺返回數據時必須和jsonValidateReturn一致
// {"jsonValidateReturn":["validateId","validateError","true"]}
var errorFieldId = json.jsonValidateReturn[0]; //改動的地方
//var errorField = $($("#" + errorFieldId)[0]);
var errorField = $($("input[id='" + errorFieldId +"']")[0]);
// 確保我們找到元素
if (errorField.length == 1) {
var status = json.jsonValidateReturn[2]; //改動的地方
// 從服務器讀取的可選MSG
var msg = json.jsonValidateReturn[1]; //改動的地方
if (!status) {
// Houston,我們有一個問題 - 顯示一個紅色的提示
options.ajaxValidCache[errorFieldId] = false;
options.isError = true;

5.4 第四步,在語言文件中自定義規則,官方語言包中有中文語言文件調用jquery.validationEngine-zh_CN.js,這里筆者添加一個“ajaxUsers”規則。
復制代碼 代碼如下:

// --- CUSTOM RULES -- Those are specific to the demos, they can be removed or changed to your likings
"ajaxUsers": {
"url": "AjaxBackstage/AjaxValidation.ashx", // "validate.action", "validate.action"ajax驗證用戶名,會post如下參數:validateError ajaxUser;validateId user;validateValue cccc
"alertTextOk": "* 帳號可以使用.",
"alertTextLoad": "* 檢查中, 請稍后...",
"alertText": "* 帳號不能使用."
},
"ajaxUserCall": {
"url": "ajaxValidateFieldUser",
// you may want to pass extra data on the ajax call
//"extraData": "name=eric",
"alertText": "* 此名稱已被其他人使用",
"alertTextLoad": "* 正在確認名稱是否有其他人使用,請稍等。"
},

OK,試試看驗證是不是能成功了呢。。。

最后,總結出來一點經驗,拿出來分享?!皬氖挛锏谋举|中尋找問題的答案!”。

作者:skylinetour
您可能感興趣的文章:
  • JQuery.validationEngine表單驗證插件(推薦)
  • jQuery插件form-validation-engine正則表達式操作示例
  • jQuery Validation Engine驗證控件調用外部函數驗證的方法
  • ASP.NET中實現jQuery Validation-Engine的Ajax驗證實現代碼
  • validationEngine 表單驗證插件使用實例代碼

標簽:萊蕪 自貢 信陽 孝感 西雙版納 許昌 常州 朔州

巨人網絡通訊聲明:本文標題《ASP.NET中實現jQuery Validation-Engine的Ajax驗證》,本文關鍵詞  ASP.NET,中,實現,jQuery,Validation-Engine,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET中實現jQuery Validation-Engine的Ajax驗證》相關的同類信息!
  • 本頁收集關于ASP.NET中實現jQuery Validation-Engine的Ajax驗證的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲综合激情网| 国产激情一区二区三区| 久久超级碰视频| 99久久精品国产一区| 精品播放一区二区| 香蕉久久夜色精品国产使用方法| 国产乱对白刺激视频不卡| 欧美色图一区二区三区| 中文av一区二区| 激情五月激情综合网| 日韩一区二区三免费高清| 亚洲一区二区美女| 99麻豆久久久国产精品免费优播| 久久综合久久综合亚洲| 午夜精品久久久久影视| 在线观看免费成人| |精品福利一区二区三区| 成人性色生活片| 久久久久久久久97黄色工厂| 理论片日本一区| 91麻豆精品国产91久久久久久久久 | 亚洲九九爱视频| 国产激情偷乱视频一区二区三区| 日韩一区二区三区视频在线观看| 一区二区三区在线免费| 色综合久久精品| 一区二区三区欧美日韩| 91国偷自产一区二区使用方法| 国产精品的网站| 成人性生交大片免费看在线播放| 久久奇米777| 国产精品一区二区三区网站| 久久蜜桃一区二区| 国产激情91久久精品导航| 久久久五月婷婷| 国产综合成人久久大片91| 国产亚洲人成网站| 国产成人免费9x9x人网站视频| 久久综合色一综合色88| 国产乱一区二区| 国产欧美一区二区三区在线老狼| 国产福利视频一区二区三区| 国产精品丝袜在线| 欧洲精品一区二区三区在线观看| 一区二区在线观看不卡| 欧美性xxxxxx少妇| 日韩专区欧美专区| 精品国产91亚洲一区二区三区婷婷 | 欧美日韩在线不卡| 天天影视涩香欲综合网| 日韩欧美一级二级三级久久久| 国产一区二区三区| 国产精品福利一区| 日本精品视频一区二区| 日韩av在线免费观看不卡| 国产香蕉久久精品综合网| 97久久超碰国产精品| 日韩精品一二三| 国产色91在线| 日本精品免费观看高清观看| 婷婷综合另类小说色区| 久久久噜噜噜久久人人看| 91传媒视频在线播放| 黑人巨大精品欧美一区| 亚洲免费在线电影| 26uuu亚洲综合色| 在线视频一区二区免费| 狠狠色丁香婷婷综合久久片| 亚洲欧美视频在线观看视频| 欧美一级理论片| 99国产欧美另类久久久精品| 日本伊人午夜精品| 亚洲天天做日日做天天谢日日欢| 91精品国产综合久久精品| 成人爽a毛片一区二区免费| 婷婷国产v国产偷v亚洲高清| 中文字幕在线一区免费| 欧美大片一区二区| 欧美亚洲愉拍一区二区| 高清不卡一区二区在线| 男男视频亚洲欧美| 亚洲一二三四久久| 中文字幕av在线一区二区三区| 9191精品国产综合久久久久久 | 亚洲精品国产第一综合99久久 | 国产在线一区观看| 一区二区三区不卡视频在线观看| 精品国内二区三区| 91麻豆精品国产91久久久使用方法| av不卡免费电影| 国产成人免费视频网站| 麻豆一区二区三| 三级在线观看一区二区| 亚洲国产一区二区三区| 亚洲人成精品久久久久| 中文无字幕一区二区三区| 精品91自产拍在线观看一区| 91精品欧美福利在线观看| 欧美系列在线观看| 在线观看亚洲精品视频| 91丝袜美腿高跟国产极品老师 | 国产精品资源在线观看| 天天综合色天天综合| 亚洲午夜精品17c| 亚洲gay无套男同| 亚洲色图制服诱惑 | 久久精品亚洲精品国产欧美kt∨| 欧美精品tushy高清| 欧美三级一区二区| 欧美日韩免费不卡视频一区二区三区| 91在线视频免费91| 97精品久久久久中文字幕| 一本久道久久综合中文字幕| 99久久精品久久久久久清纯| 91在线观看污| 91久久香蕉国产日韩欧美9色| 91免费在线播放| 欧美综合亚洲图片综合区| 精品视频在线看| 欧美一区二区三区在线观看| 日韩精品中文字幕一区二区三区| 欧美一级黄色大片| 久久久久久久久97黄色工厂| 国产精品女主播在线观看| 亚洲欧美激情一区二区| 亚洲va国产va欧美va观看| 奇米精品一区二区三区在线观看 | 激情综合网最新| 国产成人夜色高潮福利影视| 国产成人无遮挡在线视频| 99这里只有久久精品视频| 色综合久久久久久久久| 91精品国产综合久久久久久久 | 国产真实乱偷精品视频免| 丰满放荡岳乱妇91ww| 色菇凉天天综合网| 7777精品伊人久久久大香线蕉完整版 | 欧美综合色免费| 日韩精品一区二区在线观看| 欧美激情在线免费观看| 亚洲一区二区三区中文字幕| 美女视频一区二区三区| 成人免费视频一区| 欧美日韩免费电影| 欧美国产亚洲另类动漫| 亚洲国产精品一区二区久久| 国产毛片精品一区| 91免费视频网址| 欧美成人vps| 亚洲愉拍自拍另类高清精品| 精品一区免费av| 色综合久久久久综合体桃花网| 日韩一级高清毛片| 亚洲美腿欧美偷拍| 国产麻豆精品视频| 欧美日本在线视频| 国产精品视频一二| 久久99精品视频| 欧美视频一区在线观看| 中文字幕第一区| 久久99蜜桃精品| 日本乱码高清不卡字幕| 国产日产欧产精品推荐色| 亚洲图片一区二区| av资源站一区| 国产日韩欧美综合在线| 久久国产精品无码网站| 欧美日韩国产影片| 一区二区在线观看不卡| 成人app在线观看| 国产亚洲女人久久久久毛片| 日韩av电影天堂| 欧美日韩中文字幕一区二区| 国产调教视频一区| 激情综合色播激情啊| 777午夜精品视频在线播放| 一区二区三区中文字幕精品精品| 成人免费视频国产在线观看| 久久久久久久久久美女| 美女视频黄a大片欧美| 欧美老女人第四色| 婷婷丁香激情综合| 69堂亚洲精品首页| 亚洲成人av免费| 欧美曰成人黄网| 亚洲精品欧美综合四区| 99精品黄色片免费大全| 一区视频在线播放| 99精品在线观看视频| 一色桃子久久精品亚洲| 99久久99久久精品国产片果冻| 国产欧美日韩久久| 国产精品456| 一区视频在线播放| 色狠狠av一区二区三区| 一区二区三区高清| 欧美久久高跟鞋激| 蜜桃在线一区二区三区| 日韩视频永久免费| 国产精品一二三在|