Учитывая флажок объекта, выведите его значение - PullRequest
1 голос
/ 15 декабря 2010

У меня есть страница с несколькими флажками. Я хотел бы написать функцию, которая будет вызываться при нажатии кнопки ckeckbox, которая определяет, установлен флажок или нет.

<input type="checkbox" onclick="toggleVis('id',   this);"/> ID
<input type="checkbox" onclick="toggleVis('edit', this);" checked="checked"/> Edit
<input type="checkbox" onclick="toggleVis('last', this);"/> Last

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

Я подумал, что должен быть способ сделать это на основе переданной ссылки, поэтому я передал значение this в качестве параметра.

function toggleVis(name, checkbox)
{
    //if(checkbox.checked())
        console.log('checked');

        if($('.'+name).css('display') != "none")
            $('.'+name).css('display', 'none');
        else
             $('.'+name).css('display', 'table-cell');
}

Я открыт для использования jQuery.

Ответы [ 5 ]

1 голос
/ 15 декабря 2010

Если вы хотите сделать это с помощью jQuery, вы можете попробовать следующее. Обратите внимание, что я привязываюсь к флажку вместо того, чтобы включать 'onclick' или 'onchange' непосредственно в элемент HTML.

$('[type=checkbox]').click(function(){
  if( $(this).attr('checked') ){
    console.log('checked');
    if($('.'+$(this).attr('name')).css('display') != "none") {
      $('.'+$(this).attr('name')).css('display', 'none');
    } else {
      $('.'+$(this).attr('name')).css('display', 'table-cell');
    }
  }
});
1 голос
/ 15 декабря 2010

Посмотрите на свойство checkboxobj.checked (вместо вызова его как функции). В вашем случае вы можете ссылаться на if (checkbox.checked) { ... }. Более подробную информацию можно найти на этом сайте

1 голос
/ 15 декабря 2010

Вы были близки.

if(checkbox.checked) {
    console.log('checked');
    //...
}

Нет метода checked(), но есть свойство checked. Обратите внимание, что ваш код может работать только на клики. Возможно, onchange будет лучше?

0 голосов
/ 15 декабря 2010
<input type="checkbox" class="checkthis"> ID
<input type="checkbox" class="checkthis" checked="checked"> Edit
<input type="checkbox" class="checkthis"> Last

$(input.checkthis).click(function() {
  if($(this).is(':checked') {
    // do checked stuuf
  } else {
    // do not checked stuff
  }
});
0 голосов
/ 15 декабря 2010

И решение на основе JQuery:

var checked = $(checkbox).is(':checked');

Полезно, если вы хотите сначала найти флажок с помощью некоторого селектора JQ.

...