我正在用js编写验证函数。 当我将逻辑提取到私有方法时,我的验证失败了。我找不到原因。
我的html定义是:
<input type="text" id="searchQuery" data-minlenght="3">
此代码应包含任何元素的所有验证逻辑。
我使用以下行访问所有信息:
var query = jQuery("#searchQuery");
cpodesign.Validation.isValid(query, query.val());
现在我的验证实现是
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;
},
};
})();
答案 0 :(得分:1)
你的html中输入了一个拼写错误。应该是:
<input type="text" id="searchQuery" data-minlength="3">
instaid of:
<input type="text" id="searchQuery" data-minlenght="3">
错字:data-minlenght
答案 1 :(得分:0)
你会在IE中遇到这个悬挂的chad dangler
的问题 var Settings = {
MinLength: 'minlength',
};
应该是:
var Settings = {
MinLength: 'minlength'
};
注意:我还纠正了“MinLength”的拼写