Knockoutjs:只在文本框中写入内容时显示内容,在删除数据时隐藏内容
Knockoutjs: show content only if something its written in a textbox and hide it if the data is deleted
我有一个输入文本框。当用户开始键入内容时,我希望显示一个包含一些内容的div。我可以做一些类似的事情,但只有在订阅了输入的值后,输入才会失去焦点。但我希望div在用户输入内容时是可见的,如果用户从输入中删除数据,则它将隐藏起来,所有这些都不会丢失输入的焦点:
html:
<input type="text" data-bind="value: currentValue" />
<div data-bind="visible: hasData">
Has Data
</div>
javascript:
var MyViewModel = function() {
this.currentValue = ko.observable();
this.hasData = ko.observable(false);
this.currentValue.subscribe(function(newValue){
if (newValue !== ""){
this.hasData(true);
}
else{
this.hasData(false);
}
}, this);
}
ko.applyBindings(new MyViewModel());
Js报价:
http://jsfiddle.net/2Qnv7/115/
将hasData
实现为computed observable
var MyViewModel = function () {
var self = this;
self.currentValue = ko.observable();
self.hasData = ko.computed(function () {
if (self.currentValue() !== "")
return true;
return false;
});
}
ko.applyBindings(new MyViewModel());
然后在视图中使用valueUpdate
<input type="text" data-bind="value: currentValue, valueUpdate: 'afterKeyDown'" />
<div data-bind="visible: hasData">
Has Data
</div>
您应该使用valueUpdate: 'afterkeydown'
(http://knockoutjs.com/documentation/value-binding.html)。看看:http://jsfiddle.net/9yL68/
相关文章:
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- 如何删除在PHP中打印网页时显示的URL
- 在显示/隐藏中单击时删除的文本
- 如何在图像右上角显示删除按钮
- 删除所选/突出显示的文本
- 删除所有可拖动元素后如何显示消息
- Jquery添加更多和删除冲突并显示错误值
- jTable条件显示隐藏基于数据所有者的编辑和删除按钮
- 如何删除谷歌图表中的日期空间并更正百分比显示
- Knockoutjs:只在文本框中写入内容时显示内容,在删除数据时隐藏内容
- 删除的DOM元素仍然显示在移动safari(iOS 5.1)中
- 剑道网格隐藏/显示删除按钮
- 如何在正确的表行中显示删除消息
- 如何在正确的行中显示删除消息
- 如何在网格中显示删除时的确认框
- 如果var status = 'Processing',我如何在格式化器中显示删除按钮?
- 使用jquery更改并显示[删除/添加]基于输入文本框的可用选项
- 如何在悬停图像时显示删除选项
- 显示/删除一万个GoogleMarkers的良好做法
- JavaScript Document.Write()在空白页面中显示(删除HTML)