检查以确保所有字段都填满Jquery

我正在尝试在jquery中为我的输入字段创建一个简单的validation器。 目前我得到以下内容:

function checkInputs(){ var isValid = true; $('.input-required').each(function() { if($(this).val() === ''){ isValid = false; return false; } }); return isValid; } 

然后我有一个正确的按钮就是这样:

 $('#confirm').click(function () { alert(checkInputs()); }); 

但即使输入为空,这也总是返回true。 此后,如果填写了所有输入,我将进行操作,将启用一个按钮以单击。

编辑它所以它现在有一个选择器,仍然总是如此。

提前致谢

尝试使用filter属性获取具有required属性的输入。

$('input').filter('[required]')

添加了代码以检查输入是否已填满并启用或禁用button 。 请注意,如果我们使用它,那么$('#confirm').click(function());就有很多点。click $('#confirm').click(function()); function,因为此按钮仅在输入填充时启用。

 function checkInputs() { var isValid = true; $('input').filter('[required]').each(function() { if ($(this).val() === '') { $('#confirm').prop('disabled', true) isValid = false; return false; } }); if(isValid) {$('#confirm').prop('disabled', false)} return isValid; } $('#confirm').click(function() { alert(checkInputs()); }); //Enable or disable button based on if inputs are filled or not $('input').filter('[required]').on('keyup',function() { checkInputs() }) checkInputs() 
  

尝试以这种方式定位元素: $('input[required]')

这应该可以解决问题。

如果它为0则所有输入填充否则它将返回0表示任何一个或多个是空输入。

  function checkInputs(){ var flag = 0; $('input').each(function() { if($(this).val() == ''){ return flag = 1; } }); return flag; } $('#confirm').click(function () { alert(checkInputs()); }); 

您的选择器正在查找显然不存在的tagName

为类添加点前缀

也可以使用filter()来简化

 function checkInputs(){ return !$('.input-required').filter(function() { return !this.value; }).length; } 

注意:对于无线电或复选框不起作用,如果它们是该类的元素集合的一部分,如果是这种情况你需要为类型添加条件

你忘了把类符号放在jQuery中:

 function checkInputs() { var isValid = true; $('.input-required').each(function() { if($(this).val() === ''){ isValid = false; return false; } }); return isValid; } 

试试这个..