2016-06-07 5 views
0

У меня есть цикл в jquery ($.each), который создает список флажков.

Я пытаюсь вставить checked:

$.each(arrIdReg, function (id, IdRegx) { 
    if (IdRegx[0] == IdRegy[0]) {     
     Nom = Nom + IdRegx[1] + ", "; 
     // strChecked = "checked='checked'"; 
     strChecked = true; 
    } 
}); 
$('#Elen').append("<li><input type='checkbox' value='" + IdRegx[0] + " name='IdReg' class='checkbox'>" + IdRegx[1] + "</li>").prop('checked', strChecked); 

Проблема заключается в том, что она не работает, потому что все они выбраны.

Можете ли вы мне помочь, пожалуйста?

Спасибо!

+0

К сожалению, я не могу видеть, где вы проходите IdRegy, так что вы по сравнению с –

+0

ли вы скопировать код правильно? Вызов 'append' не находится внутри цикла, поэтому переменная' IdRegx' не имеет значения. – Barmar

ответ

0

Возвращаемое значение .append() - это элемент, к которому вы добавили, поэтому ваш код пытается установить свойство checked на , а не на флажок.

Простейшим способом было бы добавить атрибут checked в HTML, который вы добавляете.

$.each(arrIdReg, function (id, IdRegx) { 
    if (IdRegx[0] == IdRegy[0]) {     
     Nom = Nom + IdRegx[1] + ", "; 
     var strChecked = "checked='checked'"; 
    } else { 
     strChecked = ""; 
    } 
    $('#Elen').append("<li><input type='checkbox' value='" + IdRegx[0] + " name='IdReg' class='checkbox' " + strChecked + ">" + IdRegx[1] + "</li>"); 
}); 

Если вы хотите сделать это более программно, вы можете создать флажок как отдельный шаг.

$.each(arrIdReg, function (id, IdRegx) { 
    if (IdRegx[0] == IdRegy[0]) {     
     Nom = Nom + IdRegx[1] + ", "; 
     var boolChecked = true; 
    } else { 
     boolChecked = false; 
    } 
    var checkbox = $("<input>", { 
     type: 'checkbox', 
     value: IdRegx[0], 
     name: 'IdReg', 
     'class': 'checkbox', 
     checked: boolChecked 
    }); 
    $('#Elen').append($("<li>").append(checkbox).append(IdRegx[1])); 
}); 
+0

Hello Bartender, Я пробовал с вашим первым решением. Но ... просто выберите последнее поле. Первые не выбирают. –

+0

Можете ли вы добавить 'arrIdReg' и' IdRegy' на свой вопрос? Или сделать скрипку, которая демонстрирует проблему? – Barmar

+0

Бармен, спасибо! Теперь он работает хорошо. Это было просто мое отвлечение. –