在jquery验证中添加方法

时间:2015-04-07 10:04:52

标签: javascript jquery ajax validation

我通过jquery验证插件验证我的表单。我面临一个问题,我有一个查询。 fiddle

  1. 问题:我已使用addmethod添加自定义验证。它工作正常,但没有显示相关信息。

  2. 查询:我必须检查用户输入的用户名是否存在。我在JSON形式的ajax调用后得到响应。前

    {"用户名":"存在"}

  3. 我制作了另一种客户验证方法。

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

    我的问题是如何在ajax成功后触发此验证

4 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

我认为你最好使用special remote method。它允许您设置ajax请求以验证元素。它确实需要您对服务器设置进行一些小改动,但它使其余部分更容易。

答案 2 :(得分: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"
});

答案 3 :(得分:0)

添加并显示ajax-loader,同时用户输入用户名。当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");
}});