JQuery использует один флажок для снятия другого флажка программно - PullRequest
3 голосов
/ 27 января 2011

Мне нужен сценарий, в котором один флажок снимает другой. Это немного сложно, хотя все данные загружаются программно. Таким образом, если флажок снят, процедура должна принять его значение src, затем пройти через другие входные данные и найти входные данные, которые имеют заголовок «RQlevel» + значение src для выбранных элементов, и установить его как непроверенный.

Вот текущий код.

function levels() {
  var test = $(this).attr('src'); 
  if ($(this).is(':not(:checked)')) { 
    $(':input').each(function() { 
      if ($(this).attr('title') === ('RQLevel' + test)) {
        $(this).removeAttr('checked');
      }
    });
  }
}

Здесь есть рабочий пример, иллюстрирующий проблему http://jsfiddle.net/V8FeW/7/ Если оба флажка установлены, а первый флажок снят, следует взять второй флажок.

Marvelous

Ответы [ 3 ]

3 голосов
/ 27 января 2011
function levels() {
  var test = $(this).attr('src'); 
  if (!this.checked)
     $('input:checkbox[title=RQlevel' + test + ']').removeAttr('checked');
}

$(function() {
    $('input:checkbox').bind('change', levels);
});

Демо : http://jsfiddle.net/V8FeW/12/

1 голос
/ 27 января 2011

$('input [title="RQlevel"]').attr('checked', $(this).attr('checked'));

0 голосов
/ 27 января 2011

Здесь вы можете найти хорошее, короткое и элегантное решение: http://briancray.com/2009/08/06/check-all-jquery-javascript/

...