Javascript MDLjQuery:label将内容重叠到输入字段中

Javascript MDLjQuery:label将内容重叠到输入字段中,javascript,jquery,html,material-design-lite,Javascript,Jquery,Html,Material Design Lite,我使用Firefox版本40.0.3/Chrome 45.0.2454.85,我有以下问题:如果我使用jQuery,则占位符/标签与内容重叠 Javascript: $("#eventAddKurzLB").val("test"); <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> <input class="mdl-textfield__input" type="te

我使用Firefox版本40.0.3/Chrome 45.0.2454.85,我有以下问题:
如果我使用jQuery,则
占位符/标签与内容重叠

Javascript:

$("#eventAddKurzLB").val("test");
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
    <input class="mdl-textfield__input" type="text" id="eventAddKurzLB" />
    <label class="mdl-textfield__label" for="eventAddKurzLB">Kurzbezeichnung:</label>
    <span class="mdl-textfield__error">Es sind nur Zahlen, Buchstaben und Bindestriche erlaubt!</span>
</div>
HTML:

$("#eventAddKurzLB").val("test");
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
    <input class="mdl-textfield__input" type="text" id="eventAddKurzLB" />
    <label class="mdl-textfield__label" for="eventAddKurzLB">Kurzbezeichnung:</label>
    <span class="mdl-textfield__error">Es sind nur Zahlen, Buchstaben und Bindestriche erlaubt!</span>
</div>

Kurzbezeichung:
这是扎伦、布施塔本和宾德斯特里奇·埃拉布特的信!
示例:

$("#eventAddKurzLB").val("test");
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
    <input class="mdl-textfield__input" type="text" id="eventAddKurzLB" />
    <label class="mdl-textfield__label" for="eventAddKurzLB">Kurzbezeichnung:</label>
    <span class="mdl-textfield__error">Es sind nur Zahlen, Buchstaben und Bindestriche erlaubt!</span>
</div>

现场示例:

如果你想同时使用这两种语言,你必须使用

。 像这样的

<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">

<label class="mdl-textfield__label" for="eventAddKurzLB"> Kurzbezeichnung:</label> 
<span class="mdl-textfield__error">Es sind nur Zahlen, Buchstaben und Bindestriche erlaubt!</span>
<br/>

<input class="mdl-textfield__input" type="text" id="eventAddKurzLB" /></div>

Kurzbezeichung:
这是扎伦、布施塔本和宾德斯特里奇·埃拉布特的信!


检查fiddle->

问题不在于jQuery,而在于组件不知道您正在进行的更改(对HTML元素的编程更改不会触发事件),因此它不知道应该更改其外观。您可以通过在框中手动键入来测试这一点;即使加载了jQuery,也应该可以正常工作

您可以使用元素的API来更改文本,方法是:

$(“#我的文本字段”).get(0.MaterialTextfield.change('test')

(其中
my textfield
是外部
标签
元素),前提是元素已完成升级。另一个选项是直接执行更改,就像您正在做的那样,但会触发元素上的“脏”检查:

$(“#我的文本字段”).get(0.MaterialTextfield.checkDirty()


希望这有帮助

请注意,只应在元素升级后调用这些方法。升级是自动完成的,如果需要知道何时发生,您可以监听相应的
mdl componentupgraded
事件。是否有不需要css破解或jquery的解决方案?我一直在尝试用普通javascript解决这个问题,但却无法进行检查。我看到MaterialTextfield,但checkDirty没有作为对象上的函数列出。这应该在文档中。。。这样搜索long@AxxG没有什么是完美的,兄弟