event.preventDefault не работает при проверке переключателей

0

Я пытаюсь проверить, проверены ли все элементы (переключатели). Следующий код работает, но как только я нажимаю на окно предупреждения, он снова появляется. Использование event.stopPropagation() ничего не меняет. Он не ждет, пока пользователь проверит остальные предметы.

$(document).ready(function(){
        $(document).on('submit','#formular',function(event){
            $("input:radio").each(function() {
                var val = $('input:radio[name=' + this.name + ']:checked').val();
                if (val === undefined) {
                    alert("Not every item answered");
                    event.preventDefault();
                    }
                });
            });
        });
  • 0
    Не могу понять проблему здесь! пожалуйста, разместите скрипку -> jsfiddle.net
Теги:
validation
preventdefault

1 ответ

1
Лучший ответ

Вы не preventDefault из цикла, используя preventDefault, обычно вы должны использовать break или continue, но в jQuery $.each вы должны использовать return true для продолжения и return false эквивалент break.

    $(document).ready(function(){
        $(document).on('submit','#formular',function(event){
            $("input:radio").each(function() {
                var val = $('input:radio[name=' + this.name + ']:checked').val();
                if (val === undefined) {
                    alert("Not every item answered");
                    return false;
                }
            });
            // When invalid formular:
            return false;
            // When it valid:
            return true;
        });
    });

См. Также этот вопрос: проверка jquery: предотвратить форму submit

Видеть:

Как вырваться из jQuery каждый цикл

Как разбить/выйти из функции each() в JQuery?

https://api.jquery.com/each/

  • 0
    спасибо, но когда я использую return = false; вместо этого он сразу загружает следующую страницу.
  • 0
    Как я могу проверить, является ли формуляр действительным или нет?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню