0

我想在用户不关注输入和提交表单时向他们提供表单反馈。它在我只有 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 但它本身似乎没有做任何事情。

4

1 回答 1

1

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

您实现的逻辑恰恰相反,它应该是:

if (input.length) {
    //errors
} else {
   //no errors
}
于 2013-11-03T19:35:33.510 回答