为什么在调用 .submit 时调用 .focusout - jquery

Why does .focusout when .submit is called - jquery

本文关键字:调用 jquery focusout submit 为什么      更新时间:2023-09-26

我想在用户将注意力从输入上移开以及提交表单时向用户提供表单反馈。当我只有 focusout 方法时它有效,但在添加提交方法时失败。

(function(){
        $('input').focusout(function(){
            if($(this).val() == ""){
                $('.jsError').html('<p class="alert alert-danger text-center">'+$(this).attr('name')+' is required.</p>'); 
            }
        });
        //when the submit button is pressed
        $("#register").click(function(event){
            //var input = $(this).parent().find('input[value=""]');
            if(!input.length){
                event.preventDefault();
                $('.jsError').html('<p class="alert alert-danger text-center">'+Please fill in the form+'</p>');
            }else{
                //set variables
                var email = $('#email'),
                    emailConf = $('#emailConf'),
                    pass = $('#pass'),
                    passConf = $('#passConf'),
                    stageName = $('#stageName'),
                    mainClub = $('$mainClub'),
                    mainSkill = $('#ent_main_skill'),
                    termsAgree = $('#agreeToTerms');
            }
        }); 
})();

我以为这是event.preventdefault,但这本身似乎没有任何作用。

从我通过查看注释行看到的情况来看,您正在尝试查询所有没有值的输入。这意味着如果input.length大于 0 ,则存在错误,但如果0则表示所有表单字段都已填写。

你实现的逻辑反其道而行之,它应该是:

if (input.length) {
    //errors
} else {
   //no errors
}