2012-05-05 2 views
9

Я имею форму HTML с набором флажков, как сделать пользователь может проверить только фиксированное число из нихLimit проверяется флажок в форме

+0

Можем ли мы увидеть ваш HTML? Вы заинтересованы в ограничении общего количества или ограничении их определенной группой? Как они могут проверить два из трех, или есть какой-то другой тип ограничения? – Sampson

+0

Я хочу ограничить общее количество. Html - это просто форма с некоторыми флажками и кнопка отправки –

ответ

28

В этом примере будет подсчитывать количество проверенных входов после того, как каждый из них проверяется и сравнение с максимальным числом разрешенным. Если максимум превышен, остальные флажки отключены.

jQuery(function(){ 
    var max = 3; 
    var checkboxes = $('input[type="checkbox"]'); 

    checkboxes.change(function(){ 
     var current = checkboxes.filter(':checked').length; 
     checkboxes.filter(':not(:checked)').prop('disabled', current >= max); 
    }); 
}); 

Вот рабочий пример - http://jsfiddle.net/jaredhoyt/Ghtbu/1/

+0

понравилось! красиво сделано – sha256

+0

это работает приятно :) .. просто интересно: когда я заменяю «jQuery» на «$», почему он не работает? –

+0

У вас есть другие загруженные библиотеки, которые используют объект '$', такой как прототип? 'jQuery' должен быть синонимом' $ 'и short-hand для' $ (document) .ready() '. – jaredhoyt

5

Это связывается с каждым флажком немного логики, который проверяет сколько флажков отмечено в текущей форме. Если это число равно 2, мы отключим все остальные поля.

$("form").on("click", ":checkbox", function(event){ 
    $(":checkbox:not(:checked)", this.form).prop("disabled", function(){ 
    return $(this.form).find(":checkbox:checked").length == 2; 
    }); 
}); 

Это работает на основе каждой формы, то есть вы можете иметь несколько форм, которые не касаются входов друг друга. В нижеприведенной демонстрации я демонстрирую три формы, каждая из которых содержит три флажка. Ограничение 2 флажков ограничено их соответствующими формами.

Демонстрация: http://jsbin.com/epanex/4/edit

Смежные вопросы