我正在开发telerik应用程序。其中我使用knockout.js绑定table.Code for foreach中的数据:
<tbody id="tbodySpeakerEvaluation" data-bind="foreach: SpeakerEvaluation">
为复选框提供动态值的代码如下:
<input data-enhanced="true" data-defaults="true" name="Contentaccuracy" data-bind="attr: {value: Id + '_1'}" type="checkbox">
我希望我的复选框值应为Id_1,但这不起作用。当我点击提交并获得选中复选框时,它没有给我选中复选框的正确值
请指导我。
答案 0 :(得分:0)
如果它只是您要添加的字符串值,请使用引号中的Id
进行尝试:
<input data-enhanced="true"
data-defaults="true"
name="Contentaccuracy"
data-bind="attr: {value: 'Id' + '_1'}" type="checkbox">
虽然你可以这样做:{value: 'Id_1'}
如果这只是一个测试。
或者,您可以传递SpeakerEvaluation
的属性,不确定这是否是您要做的?例如,如果speakerId
上有SpeakerEvaluation
属性,则可以执行以下操作:
<input data-enhanced="true"
data-defaults="true"
name="Contentaccuracy"
data-bind="attr: {value: 'chk' + speakerId}" type="checkbox">
或者Id
是您的财产:
<input data-enhanced="true"
data-defaults="true"
name="Contentaccuracy"
data-bind="attr: {value: 'chk' + Id}" type="checkbox">
这样,每个复选框的值都与foreach
相关,如果ID是唯一的,则包含唯一值。
答案 1 :(得分:0)
创建简单函数randomNumber或在ViewModel中添加函数或使用计算的observable。
让我们看一下使用randomNumber函数
function randomNumber(id) {
return Math.floor(Math.random()).toString() + id;
}
此函数调用attr绑定,如
<input data-enhanced="true"
data-defaults="true"
name="Contentaccuracy"
data-bind="attr: {value: randomNumber(Id)}" type="checkbox">