附加条件已选中属性的复选框

时间:2017-05-30 01:47:28

标签: jquery json

我试图附加一个带复选框的表,但是checked属性需要基于另一个属性:

$.each(result.scenarios, function (i, scenario) {
    table.append('<tr><td><label class="checkbox-inline"><input type="checkbox" value="' + scenario.Id + '" checked="' + scenario.Shared == true ? 'checked' : '' + '">' + scenario.Name + '</label><br></td></tr>');
});

2 个答案:

答案 0 :(得分:1)

checked属性是布尔属性,因此您可以使用以下代码添加属性:(scenario.Shared ? 'checked' : '')

$.each(result.scenarios, function (i, scenario) {
    table.append('<tr><td><label class="checkbox-inline"><input type="checkbox" value="' + scenario.Id + '" ' + (scenario.Shared ? 'checked' : '') + '>' + scenario.Name + '</label><br></td></tr>');
});

答案 1 :(得分:0)

您正在设置checked属性的值。您需要放置属性(没有值)或不放置。

此:

checked="' + scenario.Shared == true ? 'checked' : ''

会导致选中所有复选框。这是因为checked属性存在。属性的值无关紧要。只要在渲染时它在HTML中,就会被检查。

应该是:

scenario.Shared ? 'checked' : ''

无需将其分配给属性。

这是一支笔:https://codepen.io/anon/pen/LyKbqm