如何获取JQuery远程基于类的验证规则的值和元素?

如何获取JQuery远程基于类的验证规则的值和元素?,jquery,validation,Jquery,Validation,我正在尝试编写一个规则,使用远程查找验证多个动态添加的输入。我不知道如何在远程规则定义中获取正在验证的字段。例如: $.validator.addClassRules({ refDataAcInput: { remote: { url: "/json/refDataLookup.html", type: "get", data: { groupName: functio

我正在尝试编写一个规则,使用远程查找验证多个动态添加的输入。我不知道如何在远程规则定义中获取正在验证的字段。例如:

$.validator.addClassRules({
    refDataAcInput: {
        remote: {
            url: "/json/refDataLookup.html",
            type: "get",
            data: {
                groupName: function(a,b,c){
                    //$(this).data("groupName");
                    //THE ABOVE DOESN'T WORK, HERE I WANT TO GET THE VALUE OF THE FIELD BEING VALIDATED
                },
                term: function(a,b,c){
                    //$(this).val();
                    //THE ABOVE DOESN'T WORK, HERE I WANT TO GET THE VALUE OF THE FIELD BEING VALIDATED
                },
                exactMatch: "true"
            },
            dataFilter: function(data, type) {
                return data;
            },
            success: function(data, textStatus, jqXHR) {
                alert(textStatus);
            }
        }
    }
});

我该怎么做呢?

我很喜欢你的想法,但你想做的事情不能像现在这样使用addClassRules来完成。问题不在于jQuery验证,而在于jQuery.ajax在生成数据时的工作方式。数据对象中的这些函数不使用上下文调用(即,
按预期填充)。jQuery代码如下所示:

value = jQuery.isFunction( value ) ? value() : value;
我相信这是有道理的,因为$.ajax的使用方式是通用的,它可以访问本地变量,这样就无所谓了(即,在调用$.ajax之前,您只需创建所需的数据对象)。对于验证,您唯一的选择可能是使用
remote
提供的数据,即输入名称作为键,输入值作为值(即
fieldName:value
),并修改远程脚本以处理该数据

如果这不是一个选项,因为你需要你的代码> GROMPNMENT/<代码>数据,你可以考虑编辑。在这种情况下,我要做的是更改此行(github中的L1024):

为此:

data = $(element).data();
data[element.name] = value;

这会将附加到元素的任何
jQuery.data
值推送到ajax请求中。

我非常喜欢你的想法,但你想做的事情不能像现在这样使用addClassRules来完成。问题不在于jQuery验证,而在于jQuery.ajax在生成数据时的工作方式。数据对象中的这些函数不使用上下文调用(即,
按预期填充)。jQuery代码如下所示:

value = jQuery.isFunction( value ) ? value() : value;
我相信这是有道理的,因为$.ajax的使用方式是通用的,它可以访问本地变量,这样就无所谓了(即,在调用$.ajax之前,您只需创建所需的数据对象)。对于验证,您唯一的选择可能是使用
remote
提供的数据,即输入名称作为键,输入值作为值(即
fieldName:value
),并修改远程脚本以处理该数据

如果这不是一个选项,因为你需要你的代码> GROMPNMENT/<代码>数据,你可以考虑编辑。在这种情况下,我要做的是更改此行(github中的L1024):

为此:

data = $(element).data();
data[element.name] = value;
这会将附加到元素的任何
jQuery.data
值推送到ajax请求中