Javascript 如何在knockoutJs中将依赖选项值放入隐藏的输入字段
我正在尝试将选定的输入值输入到一个隐藏字段中,到目前为止,任何人都可以在这方面帮助我,因为我正在尝试使用下面的代码 Html 一切正常,但我正在尝试将选定的依赖值放入一个隐藏字段中,但这些值无法渲染Javascript 如何在knockoutJs中将依赖选项值放入隐藏的输入字段,javascript,knockout.js,requirejs,Javascript,Knockout.js,Requirejs,我正在尝试将选定的输入值输入到一个隐藏字段中,到目前为止,任何人都可以在这方面帮助我,因为我正在尝试使用下面的代码 Html 一切正常,但我正在尝试将选定的依赖值放入一个隐藏字段中,但这些值无法渲染 <input id="return_order_dependent" type="hidden" name="return_order_dependent" data-bind='value: selectedPackage().name' /> 问题在于selectedPackage
<input id="return_order_dependent" type="hidden" name="return_order_dependent" data-bind='value: selectedPackage().name' />
问题在于
selectedPackage
可以是null
或未定义
。无论何时发生这种情况,您的值
数据绑定都会抛出一个错误:
selectedPackage().name
变为未定义。name
抛出无法读取未定义的属性“name”
未定义的
/空
值是选项标题
绑定的结果。如果没有标题,knockout将在应用select
绑定时将所选值设置为列表中的第一个元素
您需要做两件事:
this.hiddenInputValue = ko.pureComputed(() => {
return (this.selectedPackage() || { name: "NOT_SET" }).name;
});
使用数据绑定:
<input type="hidden" data-bind='value: hiddenInputValue' />
其他解决方案方向包括:
- 删除
,默认情况下始终选择第一个值选项caption
- 在隐藏的输入周围放置
或if
(这可能不适用于与服务器相关的内容)with
<input id="return_order_dependent" type="hidden" name="return_order_dependent" data-bind='value: selectedPackage().name' />
this.hiddenInputValue = ko.pureComputed(() => {
return (this.selectedPackage() || { name: "NOT_SET" }).name;
});
<input type="hidden" data-bind='value: hiddenInputValue' />
<input type="hidden" data-bind='value: selectedPackage() ? selectedPackage().name : null' />