jquery,在加载时将复选框设置为true

时间:2010-10-29 14:57:41

标签: jquery jquery-ui jquery-ui-button

我有这样的设置...

$(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);

这不仅不会勾选方框,而是会创建每个复选框两次。我不明白为什么会这样。谁能给我一些见解,以及如何解决它的想法?

2 个答案:

答案 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');