如何检测表格#Matrix中64个输入框是否至少有一个非空
解决表格输入框非空检查问题
嘿,我明白你的需求了——你需要检查表格#Matrix里的所有输入框,只要有至少一个输入框不为空就通过验证,但当前代码只判断了第一个输入框的值,这就是问题所在。
原代码的问题
$('table #Matrix1 input').val()这个写法只会返回第一个匹配到的输入框的值,所以只有第一个输入框非空时才会跳过if判断,其他输入框的内容根本没被检查到。
解决方案
这里给你两种靠谱的实现方式:
方法1:用jQuery的filter()方法
我们可以筛选出所有非空的输入框,然后判断筛选结果的长度是否大于0:
// 筛选出所有值不为空的输入框(去除首尾空格避免误判) const hasNonEmptyInput = $('table #Matrix1 input').filter(function() { return $.trim($(this).val()) !== ''; }).length > 0; if (!hasNonEmptyInput) { console.log("Empty"); return false; }
方法2:用ES6的some()方法(更简洁)
把jQuery对象转换成数组,然后用some()判断是否存在至少一个非空输入:
const inputs = $('table #Matrix1 input').toArray(); const hasNonEmptyInput = inputs.some(input => $.trim(input.value) !== ''); if (!hasNonEmptyInput) { console.log("Empty"); return false; }
额外提示
- 加上
$.trim()是为了排除用户只输入空格的情况,如果不需要这个逻辑,可以直接判断$(this).val() !== ''或者input.value !== ''。 - 确认你的选择器
table #Matrix1 input是正确的——如果表格的ID是Matrix而不是Matrix1,记得改成#Matrix input哦。
内容的提问来源于stack exchange,提问作者user9402741
相关产品推荐
相关产品推荐

