Почему при установке флажка не добавляется атрибут флажок = «проверен» - PullRequest
20 голосов
/ 03 февраля 2011

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

Ответы [ 3 ]

69 голосов
/ 03 февраля 2011

Атрибут 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
7 голосов
/ 03 февраля 2011

Что вы пытаетесь сделать? Узнайте, проверено ли это?

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

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

2 голосов
/ 03 февраля 2011

Если вы хотите, чтобы он отображался на элементе, отображаемом в консоли, используйте собственный метод 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">​

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

...