我已经收集了一组(我认为是)必需的表单元素,并添加了“blur”侦听器。
var formInputs = $(':input').filter('[required]');
formInputs.each(function(i) {
$(this).on('blur', function() { // Each time we leave a 'required' field, check to see if we can activate the 'submit' button.
submitEnabler(formInputs);
});
});
所以,一旦有人离开这些字段中的一个,我想使用.every()遍历此数组并检查字段是否有效——也就是说,它们是否具有我定义的“success”类。
function isValid(input) {
return input.hasClass('is_glowing_success');
}
function submitEnabler(inputs) {
console.log(inputs.every(isValid));
}
我一直收到如下信息:
Uncaught TypeError: inputs.every is not a function
at submitEnabler
现在,我可以像这样做...
for (var i = 0; i < inputs.length; i++) {
if ($(inputs[i]).hasClass('is_glowing_success')) {
console.log('yes');
} else {
console.log('no');
}
}
但是,为什么我不能只使用:Array.Prototype.every()?
$(':input[required]').blur(submitHandler);
,并对submitHandler
进行更改以访问inputs
。 - Tushar.blur(function() { submitHandler(formInputs); });
。否则,处理程序将立即被调用而不是在blur
事件上。 - Tushar