我目前正在用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 –