繁体   English   中英

preventDefault并返回false; 如果我添加if else语句

[英]preventDefault and return false; if i add if else statement

我有这个js代码

$(document).ready(function(){

    $("#frm_registration").submit(function(event){
        var submit = false;

        termsIsChecked      = $("#user_terms_of_service").is(":checked");
        uEmail              = $("#user_email").val();
        uPassword           = $("#user_password").val();
        uConfirmPassword    = $("#user_password_confirmation").val();
        uFirstName          = $("#user_firstname").val();
        uLastName           = $("#user_firstname").val();
        uContactNumber      = $("#user_firstname").val();
        uOtherInformation   = $("#user_firstname").val();


        // if(uPassword.length === 0){
        //    uPassword.after("<p>Password can't be blank</p>");
        //    submit = false;
        // }

        if(submit === false){
            event.preventDefault(); 
        }
    });
});

如果我取消注释if块,则如果我更改event.preventDefault();表单将提交事件event.preventDefault(); return false; 如果if块未注释,它仍然不起作用。 我的问题是为什么jquery会这样响应,如果我添加if语句preventDefault返回false; 将无法工作,但如果我删除if语句或将其注释掉,则preventDefault并返回false; 会工作。有人可以解释为什么这样吗

问题是uPassword不是jQuery对象,它是一个字符串,因此after String对象after没有调用任何方法。 这应该给您带来诸如Uncaught TypeError: uPassword.after is not a function错误Uncaught TypeError: uPassword.after is not a function您的浏览器控制台中Uncaught TypeError: uPassword.after is not a function

$("#user_password").after("<p>Password can't be blank</p>");

另外,您还必须使用false值初始化submit ,例如

$(document).ready(function () {

    $("#frm_registration").submit(function (event) {
        var submit = true;

        termsIsChecked = $("#user_terms_of_service").is(":checked");
        uEmail = $("#user_email").val();
        uPassword = $("#user_password").val();
        uConfirmPassword = $("#user_password_confirmation").val();
        uFirstName = $("#user_firstname").val();
        uLastName = $("#user_firstname").val();
        uContactNumber = $("#user_firstname").val();
        uOtherInformation = $("#user_firstname").val();


        if (uPassword.length === 0) {
            $("#user_password").after("<p>Password can't be blank</p>");
            submit = false;
        }

        if (submit === false) {
            event.preventDefault();
        }
    });
});

演示: 小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM