我目前正在使用来自https://github.com/ericmbarnard/Knockout-Validation的验证插件,它在输入框等普通值字段上运行良好,但我无法在 typeahead 字段上显示任何验证消息。
分配给 typeahead 的 observable 具有分配给它的必需的验证规则,并且插件可以对其进行验证,例如,当它为空白时调用 isValid() 返回 false,但未显示验证消息。
我的 typeahead 自定义绑定如下:
ko.bindingHandlers.typeahead =
init: (element, valueAccessor) ->
binding = this
elem = $(element)
value = valueAccessor()
elem.typeahead(
source: ->
ko.utils.unwrapObservable(value.source)
onselect: (val) ->
value.target val
)
elem.change ->
value.target elem.val()
update: (element, valueAccessor) ->
elem = $(element)
value = valueAccessor()
elem.val value.target()
并使用如下:
<input type="text" data-provide="typeahead" data-items="4" data-bind="typeahead: { target: selectedValue, source: sourceValues}" />
关于 github 问题的一篇文章建议在ko.bindingHandlers.validationCore.init(element, valueAccessor)
绑定的 init 部分的末尾粘贴,但这似乎没有任何帮助