Knockout和jQuery自动完成

Knockout值绑定不适用于 jquery autocomplte.如何让它工作?

我有一个模板:

<input 
   type="text" 
   class="autocomplete" 
   data-bind="value: viewmodelObservableValue"
   name="MyValue" />

在模板渲染之后,我在输入上应用了jQuery自动完成.绑定不起作用看我的jsfiddle.

它只适用于ko.applyBindings(viewmodel)在$(..)之后.autocomplete(..);

解决方法

看起来jQuery autocomplete劫持了更改事件.这就是为什么它不起作用

解决这个问题,你必须将valueUpdate属性设置为blur.当然,这不会在选择项目后触发,你必须先模糊.

$(function() {
    var availableTags = [
      "ActionScript","AppleScript","Asp","BASIC","C","C++","Clojure","COBOL","ColdFusion","Scheme"
    ];
    $(".autocomplete").autocomplete({
      source: availableTags
    });
 });

var viewmodel = {
    myValue: ko.observable()
};

ko.applyBindings(viewmodel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script>

<input type="text" class="autocomplete" data-bind="value: myValue,valueUpdate:'blur' " />

<div data-bind="text: myValue"></div>

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...