使用MDL动态构建的输入不能正确呈现
dynamically built input using MDL does not render correctly
我有以下代码,
var loginForm = document.createElement('div');
loginForm.className = 'row';
loginForm.innerHTML = '<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label textfield-demo"><input class="mdl-textfield__input" type="text" id="login" /><label class="mdl-textfield__label" for="login">Username</label></div>';
document.getElementById('page-content').appendChild(loginForm);
问题是,由于javascript函数已经运行的输入是不正确的样式。
有没有人我需要调用什么javascript函数来完成这项工作?我试过MaterialTextfield.prototype.init()
,但没有任何改变。
可以使用MDL的升级元素函数。因为您已经动态地创建了loginForm,所以您可以使用
在作用域中升级它 componentHandler.upgradeElement(loginForm);
//or, componentHandler.upgradeDom(loginForm);
//however, I suggest using jQuery to upgrade multiple if you are adding more than one
componentHandler.upgradeElements($('.mdl-textfield').get());
这将获得所有的mdl-textfield对象并升级它们(如果之前没有升级)
我继续挖掘源代码,找到了componentHandler.upgradeDom()
。当运行这个函数时,所有的动态元素都是固定的。
相关文章:
- JqueryUI对话框没有'不能使用特定的输入名称
- 用户名输入如果其他块不能正常工作/Javascript-jQuery-AJAX
- Javascript/Php聊天-输入is'不能在一个文本框中工作
- 使输入不可聚焦,tabindex=“-1〃;不会'Don’我不能做这项工作
- 在我限制输入字母后,不能退格或键入任何内容
- 在输入字段上使用它-can'我不能从函数中取出变量,这样我就可以使用它了
- 如何验证文本框,使我不能输入零作为第一个数字
- 我不能在 JavaScript 生成的输入文本框中使用退格键
- Jquery 不能在表单内选择输入元素,但在表单外部选择输入元素
- 不能将 document.execCommand('copy') 与输入类型文件一起使用
- angular-UI select2 不能在同一控制器中使用 select2Options 进行多个输入
- 输入的第一个字母.value;t不能转换成大写字母
- 单选按钮的 OnChange 事件处理程序(输入类型=“单选”)不能作为一个值工作
- 为什么我不能在输入时清空文本区域?
- 流星-不能从输入字段收集信息
- 不能将更改事件绑定到ajax调用的文件输入
- 使用FB后,不能在iframe应用程序中编辑输入字段.登录Firefox浏览器
- 我不能在Angular2中设置一个必须的输入
- 不能输入async(同步)函数的回调/空结果
- 使用nodejs Telnet登录时不能输入密码