2015-04-07 55 views
0

我通過jquery驗證插件驗證了我的表單。我面臨一個問題,我有一個問題。 fiddle在jquery驗證中添加方法

  1. 問題:我已經使用addmethod添加自定義驗證。它工作正常,但相關消息不顯示。

  2. 查詢:我必須檢查用戶輸入的用戶名是否存在。我在以JSON的形式調用ajax之後獲得響應。前

    { 「用戶名」: 「存在」}

我再拍客戶驗證方法。

$.validator.addMethod("specialChar", function(value, element){  
    return response.username!="exist" 
},"{0} already exist"); 

我的問題是如何火阿賈克斯成功

回答

1
$('#myform').validate({ 
     onfocusout:function(element){   
      this.element(element) 
     }, 
     rules:{ 
      username:{ 
       required:true, 
       specialChar:true 
      } 
     }, 

     messages:{ 
      **"username": { 
       required: "bhai ye required hai", 
       specialChar: "bhai ye special bhe mat daal" 

      }** 


     } 
    }) 

大膽在代碼

和更新小提琴的變化,以及:http://jsfiddle.net/61pptcb3/3/

0

在此之後驗證我認爲你會使用special remote method的更好。它允許你設置一個ajax請求來驗證一個元素。它確實要求您對服務器設置進行一些小改動,但這會讓其餘部分更容易。

0
$.validator.addMethod("specialChar", function (value, element, params) { 
    var patt = new RegExp(/[^A-z]/g); 
    return !patt.test(value); 
}); 


$('#myform').validate({ 
    onfocusout: function (element) { 
     this.element(element) 
    }, 
    rules: { 
     username: { 
      required: true, 
      specialChar: true 
     } 
    } 
}); 

$.extend($.validator.messages, { 
    required: "My own text.", 
    specialChar: "special charactor not allow" 
}); 
0

添加,並顯示一個Ajax的裝載機,而用戶輸入用戶名。當jQuery ajax調用返回時,隱藏ajax-loader圖標並在用戶不存在時顯示消息。

爲了提供callback to jQuery.ajax使用:

jQuery.ajax(url, {complete: function(){}}); 

validate the element when the ajax returns use

$("#myform").validate().element("#i1"); 

要放在一起做:

$.ajax(url, {complete: function(data){ 
    // truigger validation on ajax complete 
    $("#myform").validate().element("#i1"); 
}}); 
+0

如果我們使用$( 「#myForm會」) .validate()。元素( 「#I1」)。該驗證將被觸發 – Carlos

+0

@amit,它應該激發所有在該元素上添加的驗證 –