Rob*_*bie 5 watermark knockout.js
我一直在尝试创建一个自定义的bindingHandler,我可以使用它来为文本输入字段赋予水印行为.
通过watermark我的意思是:添加默认值到文本中的焦点移除,并在模糊替代领域如果文本字段仍然是空的
我已经设法让这个工作正如在这个jsfiddle中所证明的那样:http://jsfiddle.net/rpallas/nvxuw/
我有3个关于此解决方案的问题:
$(element).val('')但这也感觉不对.哪个最好,还是有更好的方法?mad*_*kay 14
我认为你使用allbindings是必要的.事实上,我认为水印根本不需要了解可观察的水印,因为这是水印通常所做的事情,即placeholder属性.
这对你有用吗?
ko.bindingHandlers.watermark = {
init: function (element, valueAccessor, allBindingsAccessor) {
var value = valueAccessor(), allBindings = allBindingsAccessor();
var defaultWatermark = ko.utils.unwrapObservable(value);
var $element = $(element);
setTimeout(function() {
$element.val(defaultWatermark);}, 0);
$element.focus(
function () {
if ($element.val() === defaultWatermark) {
$element.val("");
}
}).blur(function () {
if ($element.val() === '') {
$element.val(defaultWatermark)
}
});
}
};
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/madcapnmckay/Q5yME/1/
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
3143 次 |
| 最近记录: |