Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript获取包含值的所有输入元素_Javascript - Fatal编程技术网

Javascript获取包含值的所有输入元素

Javascript获取包含值的所有输入元素,javascript,Javascript,我正在使用querySelectorAll()JS函数检索datagrid表(aspx页)下的所有元素,datagrid包含几个复选框/文本框,有一个保存按钮,只有在满足以下规则时才应启用该按钮: 至少需要选中一个复选框或至少需要一个文本框包含文本(非空) 是否有方法检查由querySelectorAll()返回的文本框输入元素是否有值 function validate() { var search = document.getElementById("myGrdID"

我正在使用querySelectorAll()JS函数检索datagrid表(aspx页)下的所有元素,datagrid包含几个复选框/文本框,有一个保存按钮,只有在满足以下规则时才应启用该按钮:

至少需要选中一个复选框至少需要一个文本框包含文本(非空)

是否有方法检查由querySelectorAll()返回的文本框输入元素是否有值

function validate() {
            var search = document.getElementById("myGrdID").children;

            //var hasAnyText = search[0].querySelectorAll("input:valid");
            var hasAnyChecked = search[0].querySelectorAll("input:checked");

            console.log("Any check? " + hasAnyChecked.length);
        }

我想避免使用Jquery,因为它已经成功地获取了所有选中的输入元素,但却找不到一种方法来查找所有带有值的文本框(任何值都不是特定的字符串)。

您能使用
过滤器
功能吗

var results = hasAnyChecked.filter(input => input.value != null)
编辑:我下面的评论是有道理的,但如果您使用这些选择器,您将无法检查多个场景:

var results = hasAnyChecked.filter(input => input.value !== null || input.value !== false) // Handles both text inputs and checkboxes

可以使用循环遍历输入元素并检查它们的值:函数checkInputs(){const inputs=document.getElementsByTagName('input');for(让i=0;i.checkValidity()而不是
.value
来检查输入字段的有效性,而不是它的值。
const filled=search[0]。querySelectorAll(“input[type=text”).filler(inp=>inp.value.trim()!=”)
@mplungjan我认为您必须使用扩展运算符,因为节点列表并不完全是一个数组。
const textboxs=search[0]。querySelectorAll('.-textbox selector name');const hasAnyEmptyText=[…textboxs]。filter(input=>input.value!='')是的,我想你是对的-只是从我的手机上快速评论一下
input.value!==false
是没有用的。试试
input.value.trim()===”
instead,OP正在寻找文本框而不是复选框