如何在Polymer中禁用属性的元素中禁用子元素?

时间:2014-09-15 05:37:03

标签: html polymer disabled-input recursive-datastructures

如果父元素中至少有一个属性已禁用,那么哪种方法可以禁用子级?

我有表格字段嵌套在组中,其中每个组和字段都可以被禁用,具体取决于其他字段的值。多个父母可以彼此独立地被禁用。 当然,我可以查询select并迭代地禁用子节点,即最近禁用的父节点的字段。但是要重新激活字段,我还必须迭代不再在任何禁用的父级中的所有字段。

或者在每个家长上注册一个活动会更好吗?该结构的假定深度为3,约有100个元素。

父表单字段或属性aria-disabled会禁用子字段,但由于纸质元素不知道,所以没有选项。

提前致谢!

1 个答案:

答案 0 :(得分:0)

一些创造性的解决方案是创建两个输入元素,一个设置属性disabled,另一个没有设置,然后显示/隐藏它们,具体取决于父级是否设置了disabled属性

* /deep/ input[disabled] {
  display: none;
}

[disabled] /deep/ input[disabled] {
  display: initial; /* or inline */
}

[disabled] /deep/ input:not([disabled]) {
  display: none;
}

我还没有使用:not()。如果这不起作用,您可以在启用的输入元素上设置属性enabled并使用

[disabled] /deep/ input:[enabled] {
  display: none;
}

我没有测试过该解决方案,但我想它应该可行,但我不知道你是否对这种解决方案感兴趣。