2014-01-23 3 views
0

Я искал здесь темы, и никакие решения не помогли мне, кто-нибудь знает, что происходит с этой скрипкой? http://jsfiddle.net/9dLGD/ БлагодаряВыбрать все флажки не работают, jsfiddle included

$(document).ready(function() { 
    $(function() { 
     $('#SelectAll').click(function() { 
      $('#Suppliers').find(':checkbox').attr('checked', this.checked); 
     }); 
    }); 
}); 
<input name="SelectAll" type="checkbox">Select All 
<input name="Suppliers" type="checkbox" value="1">Bob 
<input name="Suppliers" type="checkbox" value="2">Bill 
<input name="Suppliers" type="checkbox" value="3">Sandy 
<input name="Suppliers" type="checkbox" value="4">Sue 
<input name="Suppliers" type="checkbox" value="5">Fred 

ответ

3

Кажись, как вы хотите:

$('input[name=SelectAll]').click(function() { 
    $('input[name=Suppliers]').prop('checked', this.checked); 
}); 

Там нет id с именем SelectAll или Suppliers в вашем HTML. Или добавьте эти идентификаторы в эти два флажка или используйте код выше, который выбирает input по их именам.

Updated Fiddle

+1

Зачем ему «добавлять эти идентификаторы в свои флажки»? идентификатор должен быть уникальным. – BenjaminPaul

+0

@BenjaminPaul, может быть, вы не понимаете, что я имею в виду. Я предлагаю ему добавить два 'ids':' SelectAll' и 'Suppliers' в первые два флажка – Felix

+0

. Какая польза для опции« Выбрать все »? идентификатор только позволит ему выбрать один ... в этом случае он мог бы просто сделать еще один флажок, как он. – BenjaminPaul

2

Несколько вещей:

-Вы есть два DOM готовые функции

-Вы не имеют ничего с идентификатором Suppliers, у вас есть name!

-Использование .prop() изменить атрибуты

$(document).ready(function() { 
    $("[name=SelectAll").change(function() { 
     $(":checkbox[name=Suppliers]").prop("checked", this.checked); 
    }); 
}); 

Демо: http://jsfiddle.net/9dLGD/1/

0

Попробуйте следующее:

$(document).ready(function() {    
     $('#SelectAll').click(function() { 
      $('input[name=Suppliers]:checkbox').attr('checked', true); 
     }); 
}); 
0

Мне нравится Феликса ответ, но я всегда использую случай де-проверки установите флажок, чтобы снять отметку с них:

$(function(){ 
    $('input[name="SelectAll"]').click(function(){ 
    if ($(this).prop('checked')) $('input[name="Suppliers"]').prop('checked', true); 
    else $('input[name="Suppliers"]').prop('checked', false); 
    }); 
}); 
Смежные вопросы