我需要检查所有输入以查看是否已填充,在这种情况下,提交按钮将变为可按下状态,并且用户可以安全地提交其数据:
unfilled = false;
$('.add-field').keypress(function(){
$('.add-field').each(function(){
if($(this).val() === ''){
unfilled = true;
} else {
unfilled = false;
}
})
console.log(unfilled);
});
这段代码有效,但是却有一个奇怪的变化。当最后一个空输入获得一个字符时,它仍返回
true
。如果输入获得另一个字符,则只有该字符会返回false
。我对此感到困惑,因为我知道在添加字符并更新输入值之后会触发.each()
函数。因此,我不明白为什么它不注册该值。 最佳答案
您可以使用filter并使用keyup事件代替del键:
DEMO
$('.add-field').keyup(function () {
var unfilled = !! $('.add-field').filter(function () {
return $.trim(this.value) === ""
}).length;
console.log(unfilled);
});