检查以确保所有字段都填满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; }
试试这个..