我正在编写一个生成字符串选择器的方法,用于绑定元素上的input
事件。
我面临一个小问题,因为现在我的代码工作但不完美。
如果not_validated = true
则valid/invalid
的值无关紧要,因为我的选择无论如何都会选择它们。我正在寻找一种方法来排除有一些类的元素。请参阅源代码中的TODO
。可能与^ or !
有关,但我只知道使用$.hasClass
等方法的方式。
FormValidator.prototype.defaultOptions = {
// Performs live validation, on value change.
live: {
not_validated: true,
valid: true,
invalid: true
}
};
// Stuff ...
FormValidator.prototype._generateSelectorOnInput = function() {
var selector = '';
if(this.options.live && this.options.live.not_validated){
selector += '[data-validate]'// TODO: Need to exclude the selector that have INPUT_SUCCESS_CLASS or INPUT_ERROR_CLASS !
}
if(this.options.live && this.options.live.valid){
selector += (selector.length ? ', ' : '') + '[data-validate].' + INPUT_SUCCESS_CLASS
}
if(this.options.live && this.options.live.invalid){
selector += (selector.length ? ', ' : '') + '[data-validate].' + INPUT_ERROR_CLASS
}
return selector;
};
答案 0 :(得分:1)
只需使用:not()
selector += '[data-validate]:not(.' + INPUT_SUCCESS_CLASS + ', .' + INPUT_ERROR_CLASS + ')';