我目前正在用knockout.js和Material Design Lite构建一个单页应用程序。Material Design Lite:如何以编程方式重置浮动标签输入文本
我有一个表单允许创建(并坚持)一个新的实体。第一次使用表单时,浮动标签输入正常工作。但在此之后,如果我通过敲除观察值重置字段的值(即将字段值设置为“”以便能够输入另一个新实体的值),浮动标签不会重置:浮动标签仍然浮动在场地上方,而场地本身应该以灰色显示,而不会再浮动。
请注意,如果我手动输入字段,添加空间,删除空间并退出字段,重置行为正在工作。
下面是从代码中重要的摘录:
的形式定义以下材料设计精简版(见http://www.getmdl.io/components/index.html#textfields-section“文本与浮动标签”)
<form>
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<input class="mdl-textfield__input" type="text" id="field1" data-bind="value: field1" />
<label class="mdl-textfield__label" for="field1">Field1 floating label</label>
</div>
</form>
在淘汰赛身边,我有这个代码:
function MyViewModel() {
var self = this;
self.field1 = ko.observable();
....
self.resetForm = function() {
self.field1("");
}
....
在我的JS,我创造我的ViewModel
var vm = new MyViewModel()
,当我想创建一个新的实体,这个视图模型我为了重置场致电
vm.resetForm();
。该字段被正确设置为空值,但浮动布局行为(回到初始状态)不会被触发。
感谢
我们真的需要看到一些代码。 http://stackoverflow.com/help/mcve –
@RoyJ嗨,罗伊,我添加了代码,希望它有帮助。 Thx –