#jquery #drop-down-menu
#jquery #выпадающее меню
Вопрос:
Я работаю с выпадающим списком jQuery. Я бы хотел, чтобы после проверки определенного количества параметров (например, трех), если я проверю четвертый, он не проверялся.
Я видел, что есть: onItemClick: function(checkbox) {}
. Есть ли какой-либо способ узнать количество проверенных элементов внутри этой функции? У меня его нет.
Я также пробовал с событием изменения базового html select, но безуспешно (я получаю что-то, но не совсем ту функциональность, которая мне нужна).
Ответ №1:
Возможно, более простым решением было бы что-то вроде:
$('input:checkbox').click(
function(){
if ($('input:checkbox:checked').length >= 3) {
return false;
}
});
Хотя вышеуказанное опубликовано из-за моего незнания onItemClick
функции. Возможно, и мы надеемся, что другие могут предложить более уместные советы относительно этого аспекта вопроса.
Ответ №2:
onItemClick: функция (флажок) {} Опция onItemClick определяет функцию обратного вызова, вызываемую, когда пользователь нажимает на любой элемент. Вызывается с единственным аргументом, который является динамически генерируемым элементом checkbox. Обратный вызов может «отклонить» щелчок, выдав любую ошибку.
Итак, что-то вроде этого должно сработать (непроверено):
onItemClick: function(checkbox) {
if($("#ddcl-YOURSELECTID-ddw input:checked").length >=3){
throw "TOO MANY!";
}
}
Вы также захотите проверить checkbox
переданное, чтобы увидеть, установлено оно или нет, прежде чем отклонять его, поскольку вы не хотите запрещать снятие флажка. Я не уверен, в каком состоянии находится переданный флажок (до или после щелчка), поэтому вам нужно просто проверить это и добавить соответствующее условие в if.