国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) web前端 js教程 jQuery Validation插件remote驗(yàn)證方式的Bug解決_jquery

jQuery Validation插件remote驗(yàn)證方式的Bug解決_jquery

May 16, 2016 pm 06:24 PM
bug jquery remote validation

不過奇怪的是,最近用下來(lái)感覺有些古怪,因?yàn)楹孟裼行┧腊?,已有功能的?yīng)變能力還不強(qiáng),甚至還有個(gè)奇怪的Bug。任何項(xiàng)目有Bug其實(shí)也正常,但這個(gè)Bug其實(shí)是一個(gè)文檔上已經(jīng)記載了,卻沒有實(shí)現(xiàn)的功能,這就有些說(shuō)不過去了。這個(gè)問題便出在remote驗(yàn)證方式上,還好修改起來(lái)非常容易,在此記錄一下,也方便以后的參考。
在表單驗(yàn)證時(shí),有時(shí)候會(huì)需要發(fā)一個(gè)AJAX請(qǐng)求去服務(wù)器上進(jìn)行判斷,例如在用戶注冊(cè)時(shí)檢查用戶名是否存在。jQuery Validation插件提供了一種remote方式來(lái)實(shí)現(xiàn)這一點(diǎn)。例如我可以這樣驗(yàn)證表單:

復(fù)制代碼 代碼如下:






這樣,jQuery Validation便會(huì)請(qǐng)求“/account/verify?userName=jeffz”這樣的URL來(lái)獲取true/false??上У氖?,我們?cè)谑褂肁SP.NET MVC時(shí),往往會(huì)將input的name寫為特定的形式,目的是利用DefaultModelBinder的強(qiáng)大綁定功能。例如:



與此同時(shí),我們用來(lái)進(jìn)行驗(yàn)證的Action方法,它的參數(shù)名可能也有所不同:
復(fù)制代碼 代碼如下:

public ActionResult Verify(string name) { ... }

根據(jù)文檔描述,此時(shí)我們應(yīng)該這樣寫:
復(fù)制代碼 代碼如下:

$('#regForm').validate({
'rules': {
'user.Name': {
'remote': {
url: '/account/verify',
data: {
name: function() { return $("#userName").val(); }
}}}}});

可是,從實(shí)際效果來(lái)看,jQuery還是在請(qǐng)求“/account/verify?user.Name=jeffz”,百思不得其解。確認(rèn)在三之后只得求助于jquery.validation.js源碼,看后差點(diǎn)暈過去:
復(fù)制代碼 代碼如下:

remote: function(value, element, param) {
if ( this.optional(element) )
return "dependency-mismatch";
...
param = typeof param == "string" && {url:param} || param;
if ( previous.old !== value ) {
previous.old = value;
var validator = this;
this.startRequest(element);
var data = {};
data[element.name] = value; // data還是以element.name為準(zhǔn)?
$.ajax($.extend(true, {
url: param,
mode: "abort",
port: "validate" + element.name,
dataType: "json",
data: data,
success: function(response) {
...

我很奇怪,不知道為什么會(huì)這樣做,這樣根本沒有起到指定參數(shù)名的作用。那么,改吧:
復(fù)制代碼 代碼如下:

remote: function(value, element, param) {
if (this.optional(element))
return "dependency-mismatch";
...
param = typeof param == "string" && {url:param} || param;
if (previous.old !== value) {
previous.old = value;
var validator = this;
this.startRequest(element);
var data = {};
data[element.name] = value;
$.ajax($.extend(true, {
// url: param,
url: param.url,
mode: "abort",
port: "validate" + element.name,
dataType: "json",
// data: data,
data: param.data || data,
success: function(response) {
...

修改兩處即可,問題就此解決。只可惜,jquery.validate.min.js類似的文件只能自己進(jìn)行壓縮了。
居然會(huì)出現(xiàn)這樣的問題,實(shí)在令人費(fèi)解。
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
jQuery引用方法詳解:快速上手指南 jQuery引用方法詳解:快速上手指南 Feb 27, 2024 pm 06:45 PM

jQuery引用方法詳解:快速上手指南jQuery是一個(gè)受歡迎的JavaScript庫(kù),被廣泛用於網(wǎng)站開發(fā)中,它簡(jiǎn)化了JavaScript編程,並為開發(fā)者提供了豐富的功能和特性。本文將詳細(xì)介紹jQuery的引用方法,並提供具體的程式碼範(fàn)例,幫助讀者快速上手。引入jQuery首先,我們需要在HTML檔案中引入jQuery函式庫(kù)??梢酝高^CDN連結(jié)的方式引入,也可以下載

jQuery中如何使用PUT請(qǐng)求方式? jQuery中如何使用PUT請(qǐng)求方式? Feb 28, 2024 pm 03:12 PM

jQuery中如何使用PUT請(qǐng)求方式?在jQuery中,發(fā)送PUT請(qǐng)求的方法與發(fā)送其他類型的請(qǐng)求類似,但需要注意一些細(xì)節(jié)和參數(shù)設(shè)定。 PUT請(qǐng)求通常用於更新資源,例如更新資料庫(kù)中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請(qǐng)求方式的具體程式碼範(fàn)例。首先,確保引入了jQuery庫(kù)文件,然後可以透過以下方式發(fā)送PUT請(qǐng)求:$.ajax({u

蘋果iOS18bug匯總 蘋果iOS18bug匯總 Jun 14, 2024 pm 01:48 PM

隨著蘋果WWDC發(fā)表會(huì)2024圓滿落幕,不僅揭曉了macos15,其中最受關(guān)注的還是蘋果iOS18新系統(tǒng)的更新,雖然有很多新功能出現(xiàn),但是作為蘋果iOS18首版不免讓人糾結(jié)是否有必要升級(jí)蘋果iOS18,在最新發(fā)表的蘋果iOS18中又有哪些BUG存在呢?經(jīng)過真實(shí)的使用測(cè)評(píng),以下是蘋果iOS18bug匯總,一起來(lái)看看。目前有許多iPhone用戶都搶先升級(jí)到了iOS18.但各種系統(tǒng)Bug讓人難受。有部落客表示,升級(jí)iOS18要謹(jǐn)慎,因?yàn)椤窧ug多到飛起」。部落客表示,如果你的iPhone是

jQuery小技巧:快速修改頁(yè)面所有a標(biāo)籤的文本 jQuery小技巧:快速修改頁(yè)面所有a標(biāo)籤的文本 Feb 28, 2024 pm 09:06 PM

標(biāo)題:jQuery小技巧:快速修改頁(yè)面所有a標(biāo)籤的文字在網(wǎng)頁(yè)開發(fā)中,我們經(jīng)常需要對(duì)頁(yè)面中的元素進(jìn)行修改和操作。使用jQuery時(shí),有時(shí)候需要一次修改頁(yè)面中所有a標(biāo)籤的文字內(nèi)容,這樣可以節(jié)省時(shí)間和精力。以下將介紹如何使用jQuery快速修改頁(yè)面所有a標(biāo)籤的文本,同時(shí)給出具體的程式碼範(fàn)例。首先,我們需要引入jQuery庫(kù)文件,確保在頁(yè)面中引入了以下程式碼:&lt

使用jQuery修改所有a標(biāo)籤的文字內(nèi)容 使用jQuery修改所有a標(biāo)籤的文字內(nèi)容 Feb 28, 2024 pm 05:42 PM

標(biāo)題:使用jQuery修改所有a標(biāo)籤的文字內(nèi)容jQuery是一款受歡迎的JavaScript庫(kù),被廣泛用於處理DOM操作。在網(wǎng)頁(yè)開發(fā)中,經(jīng)常會(huì)遇到需要修改頁(yè)面上連結(jié)標(biāo)籤(a標(biāo)籤)的文字內(nèi)容的需求。本文將介紹如何使用jQuery來(lái)實(shí)現(xiàn)這個(gè)目標(biāo),並提供具體的程式碼範(fàn)例。首先,我們需要在頁(yè)面中引入jQuery庫(kù)。在HTML檔案中加入以下程式碼:

jQuery如何移除元素的height屬性? jQuery如何移除元素的height屬性? Feb 28, 2024 am 08:39 AM

jQuery如何移除元素的height屬性?在前端開發(fā)中,經(jīng)常會(huì)遇到需要操作元素的高度屬性的需求。有時(shí)候,我們可能需要?jiǎng)討B(tài)改變?cè)氐母叨龋袝r(shí)候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來(lái)移除元素的高度屬性,並提供具體的程式碼範(fàn)例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。 height屬性用於設(shè)定元素的高度

了解jQuery中eq的作用及應(yīng)用場(chǎng)景 了解jQuery中eq的作用及應(yīng)用場(chǎng)景 Feb 28, 2024 pm 01:15 PM

jQuery是一種流行的JavaScript庫(kù),被廣泛用於處理網(wǎng)頁(yè)中的DOM操作和事件處理。在jQuery中,eq()方法是用來(lái)選擇指定索引位置的元素的方法,具體使用方法和應(yīng)用場(chǎng)景如下。在jQuery中,eq()方法選擇指定索引位置的元素。索引位置從0開始計(jì)數(shù),即第一個(gè)元素的索引是0,第二個(gè)元素的索引是1,依此類推。 eq()方法的語(yǔ)法如下:$("s

使用jQuery為表格新增一行的方法介紹 使用jQuery為表格新增一行的方法介紹 Feb 29, 2024 am 08:12 AM

jQuery是一個(gè)受歡迎的JavaScript函式庫(kù),廣泛用於網(wǎng)頁(yè)開發(fā)。在網(wǎng)頁(yè)開發(fā)過程中,經(jīng)常需要透過JavaScript動(dòng)態(tài)地在表格中新增一行。本文將介紹如何使用jQuery為表格新增一行,並提供具體的程式碼範(fàn)例。首先,我們需要在HTML頁(yè)面中引入jQuery函式庫(kù)??梢酝高^以下程式碼在標(biāo)籤中引入jQuery庫(kù):

See all articles