【发布时间】:2020-10-09 12:07:43
【问题描述】:
我根据数据库中的列表动态打印出复选框,在代码“coachProperties”中调用。每个coachProperty 都会有自己的复选框,并附有唯一的文本。 我想将此添加到另一个对象“属性”。 'properties{text1: "false, text2: "true"} 之类的东西,然后稍后将其带到服务器端进行一些过滤。我不想要任何 sumbit 按钮,因为我希望它动态更新我有 js 代码的。“属性”中的所有值都将以“false”开头,当单击复选框时应该更新。问题是,有时当我取消选中一个框时,它仍然显示为 true,反之亦然。
<div data-id="coachPropertiesCheckbox">
<% coachProperties.get('coachProperties').forEach(function (coachProperty) { %>
<div class="checkboxes">
<label>
<input type="checkbox" data-id="test" value="<%= coachProperty.text %>"> <%= coachProperty.text %>
</label>
</label>
</div>
<% }); %>
</div>
js代码:
function setProp(obj,prop,value){
obj[prop] = value;
};
var properties = {};
coachProperties.get('coachProperties').forEach(function (coachProperty) {
properties[coachProperty.text] = "false";
});
view.$el.find('[data-id="coachPropertiesCheckbox"] div.checkboxes input').change(function () {
var isCheckboxedChecked = view.$el.find('[data-id="test"]').is(':checked');
var valueCheckbox = $(this).attr("value");
setProp(properties, valueCheckbox, isCheckboxedChecked );
$.each( properties, function( key, value ) {
console.log( key + ": " + value );
});
});
【问题讨论】:
标签: javascript html jquery model-view-controller backbone.js