在fiddle和视图约会选项卡中,有一个添加计时按钮。单击同一按钮时,将插入新行。我在配置文件选项卡中保存了一个按钮,单击该按钮可在控制台上打印JSON值。
我的问题
假设我单击2次添加计时按钮,因此插入了2行。现在,我从工作日菜单中选择了某天,按时输入,并从下拉列表中选择了医院。现在,当我单击保存按钮时(在配置文件选项卡中)我想要JSOn,但是在我的情况下,HospitalID保持空白。因此现在我创建了变量并为其分配了5
,如此fiddle所示
但是现在我无法对hospitalID=5
进行硬编码,因为目前只有一所医院,但是将来我可以再添加几家医院,因此根据下拉列表中选择的医院,我希望使用该医院的ID
最佳答案
hospitals
数组必须是具有两个键的对象的数组,一个用于ID,另一个用于医院名称。
var hospitals = [];
for (var i = 0; i < schedules.length; i++) {
hospitals.push({ name: schedules[i].hospital(), id: schedules[i].hospitalId() });
}
然后,您可以在
optionsText
中为下拉菜单指定optionsValue
和data-bind
参数。另外,请确保更改value
参数以在计划中使用hospitalId
字段。<select class="span8" name="hospital"
data-bind="options: $parent.hospitalOptions,
value: hospitalId,
optionsCaption: 'Select Hospital',
optionsText: 'name',
optionsValue: 'id'" data-required="true" data-trigger="change">
</select>
现在,无论何时修改下拉列表,
hospitalId
字段都会在您的模型中更新,但hospital
字段不会更新。我建议将其转换为一个计算字段,该字段根据hospitalId
值从查询中获取正确的医院名称。JSFiddle:http://jsfiddle.net/5nZRh/17/