我需要通过JS禁用Material Design Lite文本字段。我知道我需要将元素升级到MDL以检测更改。
我预期是这样完成的:
$element.attr('disabled', 'disabled');
componentHandler.upgradeElement($element);
但是那似乎行不通。最终我得到了这个可行的解决方案:
$element.attr('disabled', 'disabled');
let inputWrap = $element.parent();
inputWrap.attr('data-upgraded', '');
inputWrap.attr('class', inputWrap.attr('class').replace(/is-upgraded/g, ''));
inputWrap.attr('class', inputWrap.attr('class').replace(/is-focused/g, ''));
componentHandler.upgradeElement(inputWrap[0]);
这个方法可行,但我有一种手动完成upgradeElement
函数工作的感觉。
有没有更简单的方法来实现这个功能?非常感谢您的帮助。
MaterialTextfield
。无论如何+1。 - Stephan Ahlf