当元素在敲除“with”绑定中时,jQuery自动完成不会触发动作
Posted
技术标签:
【中文标题】当元素在敲除“with”绑定中时,jQuery自动完成不会触发动作【英文标题】:jQuery autocomplete not firing action when element is inside knockout "with" binding 【发布时间】: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”中有一个空格吗?如果这在您的代码中,那么它可能会破坏它。 已修复。谢谢! 我的代码中没有。 【参考方案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);
;
【讨论】:
以上是关于当元素在敲除“with”绑定中时,jQuery自动完成不会触发动作的主要内容,如果未能解决你的问题,请参考以下文章