Как проверить поля, когда я нажимаю на кнопку в первый раз?

Проверка полей образования и морального воспитания происходит, когда я нажимаю на кнопку во второй раз.

Я хочу, чтобы проверка выполнялась при первом нажатии на кнопку.

У меня есть следующий код:

$('body').on('change', '#education', function(){
    if( !$("#education").val() ) {
        $(this).closest('.form-group').addClass('has-error');   
    }else{
        $(this).closest('.form-group').removeClass('has-error');
    }
});

$('body').on('change', '#moraleducation', function(){
    if( !$("#moraleducation").val() ) { 
        $(this).closest('.form-group').addClass('has-error');
    }else{
        $(this).closest('.form-group').removeClass('has-error');
    }
});

//education
$('body').on('click', '#update', function(){
    if($("body #education").hasClass('parsley-error')){
        $("body #education").closest('.form-group').addClass('has-error');
    }  
});

//moraleducation
$('body').on('click', '#update', function(){
    if($("#moraleducation").hasClass('parsley-error')){
        $("#moraleducation").closest('.form-group').addClass('has-error');
    }   
});

2 ответа

Я отмечу дикое предположение и скажу, что вы, вероятно, хотели этого

$(document).on('click', '#update', function() {
    var edu_err = $('#education').hasClass('parsley-error');
    var mor_err = $('#moraleducation').hasClass('parsley-error');

    $('#education').closest('.form-group').toggleClass('has-error', !edu_err);
    $('#moraleducation').closest('.form-group').toggleClass('has-error', !mor_err);
});

Где вы переключаете класс ошибок, основываясь на классе ошибок потомков и т. Д.

Консоль регистрирует нажатие, чтобы увидеть, есть ли ошибка при первом нажатии. Как выглядит остальная часть вашего кода? Может быть порядок, в котором вы размещаете функции.

Другие вопросы по тегам