Javascript 为什么提取到方法时验证失败?

Javascript 为什么提取到方法时验证失败?,javascript,jquery,Javascript,Jquery,我正在用js编写验证函数。 当我将逻辑提取到私有方法中时,验证失败。我不知道为什么 我的html定义是: <input type="text" id="searchQuery" data-minlenght="3"> 现在我的验证实现是 cpodesign.Validation = (function () { var Settings = { MinLenght: 'minlength', };

我正在用js编写验证函数。 当我将逻辑提取到私有方法中时,验证失败。我不知道为什么

我的html定义是:

<input type="text" id="searchQuery" data-minlenght="3">
现在我的验证实现是

cpodesign.Validation = (function () {
            var Settings = {
                MinLenght: 'minlength',
            };

            //Private members

            function validateLenght(element, value) {
                var len = element.data(Settings.MinLenght);
                return (value.length > len);
            }

            return {
                // public members
                isValid: function (element, value) {
                    var marginRight = element.data(Settings.MinLenght);
                    if (marginRight !== 'undefined') {
                        return validateLenght(element, value); // does not work
                    }  

                    console.error('Validation type not defined');
                    return true;
                },
            };
        })();
这个实现是可行的,但我不知道如何使第一个工作,因为它是我喜欢的

 cpodesign.Validation = (function () {

            return {
                // public members
                isValid: function (element, value) {
                    var marginRight = element.data("minlenght");
                    if (marginRight !== 'undefined') {
                        return value.length > marginRight;
                    }

                    console.error('Validation type not defined');
                    return true;
                },
            };
        })();

您在html中输入了一个错误。应该是:

instaid of:


打字错误:
数据最小长度

你会在IE中遇到一个问题

        var Settings = {
            MinLength: 'minlength',
        };
应该是:

        var Settings = {
            MinLength: 'minlength'
        };

注意:我还更正了“MinLength”的拼写错误。

除了此处的属性值:
MinLength:“MinLength”
之外,几乎所有地方都拼写错误。因此,当您说
element.data(Settings.MinLenght)
时,它将找不到
data MinLenght
属性。是的,这就是问题所在。真不敢相信。
        var Settings = {
            MinLength: 'minlength'
        };