Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在foreach jquery中使用$.data不起作用_Jquery - Fatal编程技术网

在foreach jquery中使用$.data不起作用

在foreach jquery中使用$.data不起作用,jquery,Jquery,目前我正在尝试验证页面上的多个表单。在foreach中,在$datacurrentFormId下面,验证程序;永远不会被击中。声明未在任何执行路径中分配给它的值。有一个父函数,它实际上是有效的 validate: function (options) { // if nothing is selected, return nothing; can't chain anyway if (!this.length) { if (options && o

目前我正在尝试验证页面上的多个表单。在foreach中,在$datacurrentFormId下面,验证程序;永远不会被击中。声明未在任何执行路径中分配给它的值。有一个父函数,它实际上是有效的

validate: function (options) {
    // if nothing is selected, return nothing; can't chain anyway
    if (!this.length) {
        if (options && options.debug && window.console) {
            console.warn("Nothing selected, can't validate, returning nothing.");
        }
        return;
    }
    // works ok in this context var validator = $.data(this[0], "validator");

    $("form").each(function (index, value) {
        var currentFormId = 'form#' + $(this).attr('id');
        // check if a validator for this form was already created
        var validator = $.data(currentFormId, "validator");
    }
}

$.data始终具有以下签名:$.dataelement、key、value,其中元素必须是要获取/设置数据的DOM元素。您已将第一个参数设置为currentFormId,它是一个字符串

因此,当您要将数据设置到表单中时。每个:

如果要检索名为validator的数据:

var valid = $.data(this, "validator"); // --> 'form#...'
如果要获取包含分配给此元素的所有数据的对象,请执行以下操作:

var alldata = $.data(this); // --> Object{validator="form#...", ......}

为什么不直接使用var validator=$this.datavalidator,因为这是each中的表单?嗨,ide中仍然存在一个问题,即分配的值在任何执行pathWait中都没有使用。你只是想清除IDE警告?它是否警告您实际上没有使用此处定义的变量验证器?
var alldata = $.data(this); // --> Object{validator="form#...", ......}