Knockout.js不会获取自动完成或预填充值

时间:2013-01-26 13:03:14

标签: knockout.js remember-me

我注意到当我使用自动完成功能时,Knockout似乎没有更新我的视图模型(例如,记住密码)。

我读到这是一个问题,但现在应该已经解决了。但它似乎并不适合我。

我主持了一个小问题的例子,如果你填写随机字符串+密码,按保存并“记住密码”并使用自动完成功能,observables电子邮件和密码不会得到更新,直到你关注相关的文本框,然后留下焦点。

使用IE 9或Firefox 18进行测试。

我不使用小提琴的原因是因为我似乎无法触发自动完成功能。

有什么想法吗?

http://cyberrascal.no-ip.org/tempsite

1 个答案:

答案 0 :(得分:3)

该值被值绑定覆盖,请看一下这个小提琴 http://jsfiddle.net/rniemeyer/TeFAX/

ko.bindingHandlers.valueWithInit = {
    init: function(element, valueAccessor, allBindingsAccessor, context) {
        var observable = valueAccessor();
        var value = element.value;

        observable(value);   

        ko.bindingHandlers.value.init(element, valueAccessor, allBindingsAccessor, context);
    },
    update: ko.bindingHandlers.value.update
};

此外,您必须等到浏览器设置该值

setTimeout(function() { ko.applyBindings(viewModel); }, 15);