我有这样的设置...
$(document).ready(function(){
var model = { /* some variable names */, Traits[] };
var traits = // json array pulled from server.
$('input[type=checkbox]').button(); // jquery ui button control.
});
现在,在我的HTML中,我有一个像这样的jQuery模板。
{{each(i, trait) traits}}
<input type='checkbox' id='chk${trait.Name}' />
<label for='chk${trait.Name}'>${trait.Name}</label>
{{/each}}
现在,当我使用这种风格创作东西时,效果很好。但是当我去编辑东西时,我希望默认情况下已经选中的“特征”被“检查”。所以我尝试了这段代码..
// jquery startup... variable loading, etc.
function evaluateCheckbox(item){
$("'#chk" + item.Name + "'").attr('checked', true);
}
model.Traits.forEach(evaluateCheckbox);
这不仅不会勾选方框,而是会创建每个复选框两次。我不明白为什么会这样。谁能给我一些见解,以及如何解决它的想法?
答案 0 :(得分:3)
你有一套额外的引号,它应该是:
$('#chk' + item.Name).attr('checked', true);
您可能希望之后刷新jQuery UI按钮的可见状态,如下所示:
$('#chk' + item.Name).attr('checked', true).button('refresh');
答案 1 :(得分:0)
至于多次创建复选框,我无法证明这一点。但是,要选中复选框,请检查您的evaluateCheckbox代码
$("'#chk" + item.Name + "'").attr('checked', 'checked');