jQuery版本:3.6.3
引导版本:3.4.1
引导-选择版本:1.13.18
敲除版本:3.4.2
敲除确认版本:2.0.4
使用https://github.com/snapappointments/bootstrap-select/issues/200,我可以得到标准的Bootstrap-Select下拉列表,但是,当我尝试将相同的逻辑应用到级联下拉列表时,我得到了以下结果:
Uncaught TypeError: Unable to process binding "selectPicker: function(){return $parent.stateOrProvince }"
Message: valueAccessor is not a function
at Object.update (knockout-debug.js:4452:56)
at update (?editor_console=true:926:38)
at ko.dependentObservable.disposeWhenNodeIsRemoved (knockout-debug.js:3383:33)
at Function.evaluateImmediate_CallReadThenEndDependencyDetection (knockout-debug.js:2183:103)
at Function.evaluateImmediate_CallReadWithDependencyDetection (knockout-debug.js:2150:29)
at Function.evaluateImmediate (knockout-debug.js:2111:28)
at ko.computed.ko.dependentObservable (knockout-debug.js:1964:28)
at knockout-debug.js:3381:28
at Object.arrayForEach (knockout-debug.js:159:17)
at applyBindingsToNodeInternal (knockout-debug.js:3353:22)
您可以在以下位置看到确切的示例:https://jsfiddle.net/ddelella/zwv26dme/
这个错误可以通过开发人员工具在浏览器控制台中看到,但在JSFiddle控制台(beta版)中看不到。当我将级联下拉菜单改回标准选择时,它工作正常。我假设这个问题是与$parent.stateOrProvince值访问器有关。有人能帮我解决这个问题吗?
下面是工作级联选择代码,以防您想要来回切换。
<select id="stateOrProvince" name="stateOrProvince" class="form-control" data-bind="value: $parent.stateOrProvince, optionsText: 'DisplayName', optionsCaption: 'Select State or Province...', options: Subdivisions">
</select>
后续问题,有人知道在加载级联下拉菜单时如何忽略州验证吗?默认为“Select State or Province...”,但我只希望在提交表单或用户切换州然后返回默认选项时显示验证消息。
1条答案
按热度按时间f3temu5u1#
问题似乎是您正在将一个普通数组(country.subdivisions)传递到绑定(options)中,该绑定希望将observableArray作为第二个参数。请尝试在初始化Model时将country.subdivisions属性设置为observableArray。