Переключить событие на отметку флажка - PullRequest
0 голосов
/ 20 ноября 2011

У меня есть два флажка. у каждого есть форма, которая отключается, когда флажок не отмечен. я хочу, чтобы на каждом флажке была включена его форма.

Я пытаюсь этот код, но это работает, даже если флажок не установлен:

$("#form1").click(function(){
    if(":checked",this) { ..... }

 });

 $("#form2").click(function(){
    if(":checked",this) { ..... }

 });

ты мне поможешь?

Ответы [ 2 ]

3 голосов
/ 20 ноября 2011

Вы можете использовать метод jQuery is:

if($(this).is(":checked")) {
    //It's checked!
}

То, что у вас сейчас есть, всегда будет оцениваться как true, потому что this всегда будет чем-то правдивым (не undefined или null, например).

Обратите внимание, что вам нужно передать this в jQuery, потому что это будет ссылка на сам элемент DOM, по которому щелкнули, а не на jQuery-элемент.

2 голосов
/ 20 ноября 2011

Являются ли флажки # form1 и # form2? тогда вы могли бы сделать:

$("#form1").change(function(){
    if( this.checked ) { 
     .....
    }

 });

 $("#form2").change(function(){
    if( this.checked ) {
     ...
    }
 });

http://jsfiddle.net/9pgmN/1/ (просто демо)

jQuery ":checked" после создания различных избыточных объектов и фильтрации селекторов сводится к

checked: function( elem ) {
    return elem.checked === true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...