Возврат неверной отправки, если при начальной загрузке страницы не установлен флажок - PullRequest
0 голосов
/ 04 июля 2019

Мне нужны мои обработчики ошибок, если форма отправляется без выбора при начальной загрузке. Если я добавлю .prop ('required', true) на каждый флажок в функции готовности документа, он будет включать другие флажки, значения которых загружены из нашей базы данных. Это означает, что мой обработчик ошибок будет запущен, хотя уже выбраны поля.

Итак, я попробовал этот код вне моей функции onsubmit:

$(this).find('input[type=checkbox]').filter(':checked').length;
$('.cboxgrp').each(function(){
if(cboxgrp===0){
$(this).find('input[type=checkbox]').prop('require',true);}

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

Это мой текущий код ниже:

$(#form).on('submit', function(){
$(this).find('input[type=checkbox]').filter(':checked').length;
$('.cboxgrp').each(function(){
if(cboxgrp===0){
$(this).find('input[type=checkbox]').prop('require',true);}});

Результат в приведенном выше коде на 1 щелчок мыши (буквально) больше, чем я ожидал. Это установит флажки для обязательных при первом нажатии кнопки отправки, а затем со второй попытки показывает мои обработчики ошибок.

Есть ли способ, с помощью которого мои обработчики ошибок могут запускаться при начальной загрузке, не устанавливая флажки «обязательные» в готовом документе?

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Попробуйте код ниже

$(document).ready(function(){
  $('form :checkbox', this).each(function(){
     var checkbox = $(this);
     if( ! checkbox.is(':checked')){
       checkbox.prop('required', true);
     }
  })
})
0 голосов
/ 04 июля 2019

попробуй $(this).find(':checkbox:not(:checked)').prop('required',true);

...