jquery, устанавливая флажки в true при загрузке - PullRequest
0 голосов
/ 29 октября 2010

У меня есть такая настройка ...

$(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 ]

3 голосов
/ 29 октября 2010

У вас есть дополнительный набор qoutes, он должен быть просто:

$('#chk' + item.Name).attr('checked', true);

Вы, вероятно, захотите обновить видимое состояние кнопки jQuery UI и после этого, например, так:

$('#chk' + item.Name).attr('checked', true).button('refresh');
0 голосов
/ 29 октября 2010

Что касается создания флажков несколько раз, я не могу засвидетельствовать это.Тем не менее, чтобы установить флажки, установите код проверкиCheckbox на

$("'#chk" + item.Name + "'").attr('checked', 'checked');
...