由于阴影元素,无法查询聚合物3中页面中的所有元素(queryselectorall)

问题描述 投票:0回答:1

以前我使用聚合物1,为了进行一些自定义验证,我已将以下代码与queryselectorAll一起使用以获取所有无效元素

            var _formTag = this.$$("request-details").$$("#newForm");
           _array = Array.prototype.slice.call(_formTag.querySelectorAll(":invalid"),0);

现在,我正在升级到聚合物3,它不能与queryselectorAll一起使用,因为所有无效输入现在都由shadowroot包裹了。因为我们有更多数量的按需表单元素,所以使用id逐一处理元素并遍历影子根将非常困难。建议我有办法获取页面中所有无效的元素。

javascript validation polymer polymer-2.x polymer-3.x
1个回答
0
投票

您可以以这种形式获取所有需要验证的元素,然后按如下所示过滤无效的元素

var elements = this.$.newForm._getValidatableElements();
var invalidElements = elements.filter(x => x.invalid);
© www.soinside.com 2019 - 2024. All rights reserved.