javascript - 当元素位于 knockout "with"绑定(bind)内时,jQuery 自动完成不会触发操作

标签 javascript jquery asp.net-mvc knockout.js autocomplete

我正在尝试使用 jquery UI 实现自动完成,但是自动完成文本框位于“with” knockout 绑定(bind)内部,因此 MVC 操作永远不会被触发。

<div data-bind="with: activeButton">
 //Some other div's...
  <div>
   <input type="text" id="autoCompleteText" data-autocomplete-url="@Url.Action("Autocomplete")"/>
  </div>
</div>

//On DOM ready
$('*[data-autocomplete-url]').each(function () {
      $(this).autocomplete({
          source: $(this).data("autocomplete-url")
      });
  });

当自动完成元素位于“带有” knockout 绑定(bind)内部时,我是否需要执行其他操作来触发 MVC 操作?

最佳答案

您将需要用于 jquery ui 自动完成的 knockout 绑定(bind)处理程序。类似的东西

<div data-bind="with: activeButton">
//Some other div's...
      <input type="text" id="autoCompleteText" data-bind='textInput: someSelectedValue, autoComplete:{source: "@Url.Action("Autocomplete")" }' />
</div>

knockout 绑定(bind)

ko.bindingHandlers.autoComplete = {
    init: function(element, valueAccessor) {
        var autoCompleteOptions = ko.unwrap(valueAccessor()); // Get the current value of the current property we're bound to
        $(element).autocomplete(autoCompleteOptions); 
    }
};

关于javascript - 当元素位于 knockout "with"绑定(bind)内时,jQuery 自动完成不会触发操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43861110/

相关文章:

javascript - 如何计算生成的所有数字?

jQuery:点击按钮删除最接近的对象需要什么

创建 div 后 jQuery 附加一个点击处理程序

c# - 带有图像和标签的 MVC Razor 下拉列表?

jquery - 如何获得 Kendo 网格行选择

c# - 带 View 的 BaseController

javascript - Chrome 扩展程序在安装时的新标签中不显示背景图片

javascript - 如何与 js 文件 laravel 共享变量?

javascript - 一项功能可以预订多个不同的航类?

javascript - jquery jquery-1.9.0 设置div显示:none when I trying to use toggle