var inputs = document.getElementsByTagName("input");
var numSelected = 0;
var current;
for (var i=inputs.length;i--;) {
current = inputs[i];
if (current.type.toLowerCase() == "checkbox" && current.checked && current.name.indexOf("pdf") == 0) {
current++;
};
};
if (current > 5) {
alert("You've got " + current + " selected! :(");
}
Если бы вы использовали jQuery, это было бы так же просто, как
var selectedPdfCheckboxes = $('input:checkbox[name^=pdf]');
if (selectedPdfCheckboxes.length > 5) {
alert("You've got " + selectedPdfCheckboxes.length + " selected! :(");
}
Edit:
Селектор jQuery, который я использовал (^=
), читается как «начать с», поэтому * эквивалент не требуется.
Код jQuery будет выполняться везде, где он размещен, однако он должен быть выполнен не раньше, чем document.ready()
, чтобы гарантировать, что выбранные вами элементы присутствуют в DOM. Если вы поместите его в document.ready, он сработает, как только будет запущено событие готовы к документу. Возможно, вы захотите поместить код в обработчик события для другого события, например, для отправки формы?
$(document).ready(function () {
$("#aForm").bind('submit', function (e) {
var selectedPdfCheckboxes = $('input:checkbox[name^=pdf]');
if (selectedPdfCheckboxes.length > 5) {
alert("You've got " + selectedPdfCheckboxes.length + " selected! :(");
e.preventDefault();
}
});
});