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