【问题标题】:jQuery autocomplete not firing action when element is inside knockout "with" binding当元素在敲除“with”绑定中时,jQuery自动完成不会触发动作
【发布时间】:2017-10-07 06:01:09
【问题描述】:

我正在尝试使用 jquery UI 实现自动完成,但是自动完成文本框位于“with”敲除绑定内,因此 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")
      });
  });

当自动完成元素在“with”敲除绑定中时,我是否必须做一些不同的事情来触发 MVC 操作?

【问题讨论】:

  • 你知道“data-autocomplete-url”中有一个空格吗?如果这在您的代码中,那么它可能会破坏它。
  • 已修复。谢谢!
  • 我的代码中没有。

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


【解决方案1】:

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

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

敲除绑定

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); 
    }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-14
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2012-11-21
    相关资源
    最近更新 更多