Подтвердить что ты не робот

Почему при нажатии на флажок не добавляется атрибут checked = 'checked'

Когда я нажимаю флажок, почему проверяемый атрибут не добавляется? Вы можете увидеть код здесь http://jsfiddle.net/FCrSg/

4b9b3361

Ответ 1

Что вы пытаетесь сделать? Выясните, проверено ли оно?

$('.user_roles').click(function(){ 
    console.log( $(this).is(':checked'));
});

http://jsfiddle.net/petersendidit/FCrSg/1/

Ответ 2

Атрибут HTML checked означает: проверяется по умолчанию, когда страница загружается. Это не изменится при щелчке по кнопке.

<input type="checkbox" checked="checked"> <!-- The HTML attribute -->

Свойство DOM checked фактически является текущим состоянием флажка и является либо истинным, либо ложным. Это изменится при щелчке по галочке, но не отображается при проверке HTML.

$('input:check')[0].checked == true;
// Whether or not the checkbox is currently checked

Ответ 3

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

Пример: http://jsfiddle.net/FCrSg/2/

this.setAttribute('checked',this.checked);

Итак, это будет выглядеть так:

$('.user_roles').click(function(){
    this.setAttribute('checked',this.checked);
    console.log( $(this) );
});

Затем консоль должна предоставить вам:

<input class=​"user_roles" type=​"checkbox" checked=​"true">​

Хотя обычно вам не нужен атрибут, подобный этому. Обычно свойство достаточно.