簡體   English   中英

在jQuery驗證中添加方法

[英]add method in jquery validation

我正在通過jquery驗證插件驗證我的表單。 我面臨一個問題,我有一個查詢。 小提琴

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

  2. 查詢:我必須檢查用戶輸入的用戶名是否存在。 在以JSON形式進行ajax調用后,我得到響應。

    { “用戶名”: “存在”}

我提出另一種客戶驗證方法。

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

我的問題是ajax成功后如何觸發此驗證

$('#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/

我認為您最好使用特殊的remote方法 它允許您設置ajax請求以驗證元素。 它確實需要您對服務器設置進行一些小的更改,但是這使其余操作變得更加容易。

$.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"
});

當用戶輸入用戶名時,添加並顯示一個ajax-loader。 當jQuery ajax調用返回時,隱藏ajax-loader圖標並顯示消息(如果用戶不存在)。

要提供對jQuery.ajax回調,請使用:

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

在ajax返回時驗證元素,請使用

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

要將其放在一起,請執行以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM