我有一个自定义输入框,它继承自HTMLInputElement
:
class TB extends HTMLInputElement {
static get observedAttributes() {
return ['value'];
}
constructor() {
super();
this.addEventListener("change", function (event) {
this.setAttribute('value', this.value);
});
}
connectedCallback() {
this.setAttribute('value', this.value);
}
attributeChangedCallback(name, oldValue, newValue) {
this.value = newValue;
}
}
我能够做到以下几点:
在输入中输入“测试”
(tb.value && tb.value..attributes["value"])==="test
更改属性值以更改属性
tb.attributes["value"].value ="test" -> tb.value ==="test"
但我不能执行以下操作:
tb.value = "test" -> tb.attributes["value"] === "test";
我认为解决方案是覆盖类的 get value() 和 set value(value)。但我没有任何成功。