У меня есть базовая функция щелчка по флажкам, которая позволяет пользователю устанавливать только один флажок в каждом наборе полей (есть четыре набора полей, каждый из которых содержит многочисленные флажки:
$(document).ready(function(){
$('input[type=checkbox]').click(function(){
// get the fieldset class
var fieldset = $(this).parents('fieldset').attr('class');
// set the number of checked
var numChecked = $('.'+fieldset+' input:checked').size();
// if more than 1
if(numChecked > 1){
alert('Please select only one option per breakout session.')
$ (это) .attr ( 'проверено', ложь);
}
});
Затем в форме есть функция отправки, которая подтверждает, что перед отправкой формы установлен хотя бы один флажок:
$('form[name=mainForm]').submit(function(){
var error = '';
// loop through each fieldset
$('fieldset',this).each(function(){
// set the number of checked for this fieldset
var numChecked = $('input:checked',this).size();
// if none are checked
if(!numChecked){
// set the error var
error = 'At least one of your time sessions has no checkbox selected!';
// add class to show user
$(this).addClass('errorSessions');
}
else{
$(this).removeClass('errorSessions');
}
});
// if any errors, show them and don't allow the form to be submitted
if(error.length){
alert(error);
return false;
}
$("#mainForm").validate();
Форма проверяется отлично, и все происходит безупречно в первый раз. Проблема в том, что если вы отправляете форму, происходит проверка и выдает ошибку «По крайней мере, на одном из ваших сеансов времени не установлен флажок!» - в этот момент, если вы продолжите выбирать несколько флажков в данном наборе полей, который изначально не был отмечен, он будет игнорировать функцию щелчка флажка и позволит вам выбрать более одного флажка в наборе полей.
Может кто-нибудь помочь с этим?