解决方案 »

  1.   

    $.extend(
        validateFunction, {
            regValidate: function () {
                if ($("#mobileCodeDiv").attr("class") == 'item') {
                    $("#regName").jdValidate(validatePrompt.regName, validateFunction.regName, true);
                    $("#pwd").jdValidate(validatePrompt.pwd, validateFunction.pwd, true);
                    $("#pwdRepeat").jdValidate(validatePrompt.pwdRepeat, validateFunction.pwdRepeat, true);
                    $("#mobileCode").jdValidate(validatePrompt.mobileCode, validateFunction.mobileCode, true);
                    return validateFunction.FORM_submit(["#regName", "#pwd", "#pwdRepeat", "#mobileCode"]);
                } else {
                    $("#regName").jdValidate(validatePrompt.regName, validateFunction.regName, true);
                    $("#pwd").jdValidate(validatePrompt.pwd, validateFunction.pwd, true);
                    $("#pwdRepeat").jdValidate(validatePrompt.pwdRepeat, validateFunction.pwdRepeat, true);
                    return validateFunction.FORM_submit(["#regName", "#pwd", "#pwdRepeat"]);
                }
            }
        });
    var isSubmit = false;
    $("#pwd").bind("keyup",function () {
        validateFunction.pwdstrength();
    }).jdValidate(validatePrompt.pwd, validateFunction.pwd)
    $("#pwdRepeat").jdValidate(validatePrompt.pwdRepeat, validateFunction.pwdRepeat);
    $("#regName").jdValidate(validatePrompt.regName, validateFunction.regName);
    $("#mobileCode").jdValidate(validatePrompt.mobileCode, validateFunction.mobileCode);function checkReadMe() {
        if ($("#readme").attr("checked") == true) {
            $("#protocol_error").removeClass().addClass("error hide");
            return true;
        } else {
            $("#protocol_error").removeClass().addClass("error");
            return false;
        }
    }function agreeonProtocol() {
        if ($("#readme").attr("checked") == true) {
            $("#protocol_error").removeClass().addClass("error hide");
            return true;
        }
    }function protocolReg() {
        $("#closeBox").click();
        reg();
    }function reg() {
        if (isSubmit) {
            return;
        }
        var agreeProtocol = checkReadMe();
        var regNameok = validateRegName();
        isSubmit = true;    var passed = validateFunction.regValidate() && regNameok && agreeProtocol;
        //pageTracker._trackEvent('Button', 'Regist', 'Normal');
        if (passed) {
            $("#registsubmit").attr({ "disabled": "disabled" }).removeClass().addClass("btn-img btn-regist wait-btn");
            $.ajax({
                type: "POST",
                url: "../reg/regService?r=" + Math.random() + "&" + location.search.substring(1),
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                data: $("#personRegForm").serialize(),
                success: function (result) {
                    if (result) {
                        var obj = eval(result);
                        if (obj.info) {
                            alert(obj.info);
                            verc();
                            $("#registsubmit").removeAttr("disabled").removeClass().addClass("btn-img btn-regist");
                            isSubmit = false;
                            return;
                        }
                        if (obj.noAuth) {
                            verc();
                            window.location = obj.noAuth;
                            return;
                        }
                        if (obj.success == true) {
                            window.location = obj.dispatchUrl;
                        }
                    }
                }
            });
        } else {
            $("#registsubmit").removeAttr("disabled").removeClass().addClass("btn-img btn-regist");
            isSubmit = false;
        }
    }function popupReg() {
        var agreeProtocol = checkReadMe();
        var passed = validateRegName() && validateFunction.regValidate() && agreeProtocol;
        if (passed) {
            $("#popupRegButton").attr({ "disabled": "disabled" }).removeClass().addClass("btn-img btn-regist wait-btn");
            $.ajax({
                type: "POST",
                url: "../reg/regService?r=" + Math.random(),
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                data: $("#popupPersonRegForm").serialize(),
                success: function (result) {
                    if (result) {
                        var obj = eval(result);
                        if (obj.info) {
                            alert(obj.info);
                            verc();
                            $("#popupRegButton").removeAttr("disabled").removeClass().addClass("btn-img btn-regist");
                            return;
                        }
                        if (obj.noAuth) {
                            verc();
                            window.parent.location = obj.noAuth;
                            return;
                        }
                        if (obj.success == true) {
                            window.parent.jdModelCallCenter.init(true);
                            return;
                        }
                    }
                }
            });
        } else {
            $("#popupRegButton").removeAttr("disabled").removeClass().addClass("btn-img btn-regist");
        }
    }function popupContinueReg() {
        $("#protocolContent").removeClass().addClass("regist-bor hide");
        $("#popupPersonRegForm").show();    popupReg();
    }function showProtocol() {
        $("#popupPersonRegForm").hide();
        $("#protocolContent").removeClass().addClass("regist-bor");}
    //$("#authcode").bind('keyup', function (event) {
    //    if (event.keyCode == 13) {
    //        $("#registsubmit").click();
    //    }
    //});
      

  2.   

    //验证文本
    var validatePrompt = {
        regName: {
            onFocus: "请输入邮箱/用户名/手机号",
            succeed: "",
            isNull: "请输入邮箱/用户名/手机号",
            error: {
                beUsed: "该用户名已被使用,请重新输入或使用推荐用户名。如果您是&quot;{1}&quot;,请立刻<a href='https://passport.jd.com/uc/login' class='flk13'>登录</a>",
                badLength: "用户名长度只能在4-20位字符之间",
                badFormat: "用户名只能由中文、英文、数字及“_”、“-”组成",
                fullNumberName: "<span>用户名不能是纯数字,请确认输入的是手机号或者重新输入</span>"
            },
            onFocusExpand: function () {
                $("#morePinDiv").removeClass().addClass("intelligent-error hide");
            }
        },    pwd: {
            onFocus: "<span>6-20位字符,可使用字母、数字或符号的组合,不建议使用纯数字,纯字母,纯符号</span>",
            succeed: "",
            isNull: "请输入密码",
            error: {
                badLength: "密码长度只能在6-20位字符之间",
                badFormat: "密码只能由英文、数字及标点符号组成",
                simplePwd: "<span>该密码比较简单,有被盗风险,建议您更改为复杂密码,如字母+数字的组合</span>",
                weakPwd: "<span>该密码比较简单,有被盗风险,建议您更改为复杂密码</span>"
            },
            onFocusExpand: function () {
                $("#pwdstrength").hide();
            }
        },
        pwdRepeat: {
            onFocus: "请再次输入密码",
            succeed: "",
            isNull: "请输入密码",
            error: {
                badLength: "密码长度只能在6-20位字符之间",
                badFormat2: "两次输入密码不一致",
                badFormat1: "密码只能由英文、数字及标点符号组成"
            }
        },
        mobileCode: {
            onFocus: "",
            succeed: "",
            isNull: "请输入短信验证码",
            error: "验证码错误"
        },
        protocol: {
            onFocus: "",
            succeed: "",
            isNull: "请先阅读并同意《京东用户注册协议》",
            error: ""
        },
        empty: {
            onFocus: "",
            succeed: "",
            isNull: "",
            error: ""
        }
    };
      

  3.   

    //回调函数
    var validateFunction = {
        regName: function (option) {
            $("#intelligent-regName").empty().hide();
            var regName = option.value;
            if (validateRules.isNull(regName) || regName == '邮箱/用户名/手机号') {
                option.element.removeClass(validateSettings.INPUT_style2).removeClass(validateSettings.INPUT_style1);
                $("#regName_error").removeClass().empty();
                return;
            }        if (regName.indexOf("@") > -1) {
                $("#mobileCodeDiv").removeClass().addClass("item hide");
                $("#authcodeDiv").show();
                checkEmail(option);
                return;
            }
            if (validateRules.isMobile(regName)) {
                checkMobile(option);
                return;
            }
            $("#mobileCodeDiv").removeClass().addClass("item hide");
            $("#authcodeDiv").show();
            checkPin(option);
        },    pwd: function (option) {
            var str1 = option.value;
            var regName = $("#regName").val();
            if ((validateRules.isNull(regName) == false) && (regName != '邮箱/用户名/手机号') && regName == str1) {
                $("#pwdstrength").hide();
                validateSettings.error.run(option, "<span>您的密码与账户信息太重合,有被盗风险,请换一个密码</span>");
                return;
            }        var str2 = $("#pwdRepeat").val();
            var format = validateRules.isPwd(option.value);
            var length = validateRules.betweenLength(option.value, 6, 20);        $("#pwdstrength").hide();
            if (!length && format) {
                validateSettings.error.run(option, option.prompts.error.badLength);
            } else if (!length && !format) {
                validateSettings.error.run(option, option.prompts.error.badFormat);
            } else if (length && !format) {
                validateSettings.error.run(option, option.prompts.error.badFormat);
            } else if (validateRules.weakPwd(str1)) {
                validateSettings.error.run(option, option.prompts.error.weakPwd);
            } else {            validateSettings.succeed.run(option);
                validateFunction.pwdstrength();
                if (validateRules.simplePwd(str1)) {
                    $("#pwd_error").removeClass().addClass("focus");
                    $("#pwd_error").empty().html(option.prompts.error.simplePwd);
                    return;
                }
            }
            if (str2 == str1) {
                $("#pwdRepeat").focus();
            }
        },
        pwdRepeat: function (option) {
            var str1 = option.value;
            var str2 = $("#pwd").val();
            var length = validateRules.betweenLength(option.value, 6, 20);
            var format2 = validateRules.isPwdRepeat(str1, str2);
            var format1 = validateRules.isPwd(str1);
            if (!length) {
                validateSettings.error.run(option, option.prompts.error.badLength);
            } else {
                if (!format1) {
                    validateSettings.error.run(option, option.prompts.error.badFormat1);
                } else {
                    if (!format2) {
                        validateSettings.error.run(option, option.prompts.error.badFormat2);
                    }
                    else {
                        validateSettings.succeed.run(option);
                    }
                }
            }
        },    mobileCode: function (option) {
            var bool = validateRules.isNull(option.value);
            if (bool) {
                validateSettings.error.run(option, option.prompts.error);
                return;
            } else {
                validateSettings.succeed.run(option);
            }
        },
        protocol: function (option) {
            if (option.element.attr("checked") == true) {
                option.element.attr("sta", validateSettings.succeed.state);
                option.errorEle.html("");
            } else {
                option.element.attr("sta", validateSettings.isNull.state);
                option.succeedEle.removeClass(validateSettings.succeed.style);
            }
        },
        pwdstrength: function () {
            var element = $("#pwdstrength");
            var value = $("#pwd").val();
            if (value.length >= 6 && validateRules.isPwd(value)) {
                $("#pwd_error").removeClass('focus');
                $("#pwd_error").empty();
                element.show();
                var level = pwdLevel(value);
                switch (level) {
                    case 1:
                        element.removeClass().addClass("strengthA");
                        break;
                    case 2:
                        element.removeClass().addClass("strengthB");
                        break;
                    case 3:
                        element.removeClass().addClass("strengthC");
                        break;
                    default:
                        break;
                }
            } else {
                element.hide();
            }
        },
        checkGroup: function (elements) {
            for (var i = 0; i < elements.length; i++) {
                if (elements[i].checked) {
                    return true;
                }
            }
            return false;
        },
        checkSelectGroup: function (elements) {
            for (var i = 0; i < elements.length; i++) {
                if (elements[i].value == -1) {
                    return false;
                }
            }
            return true;
        },    FORM_submit: function (elements) {
            var bool = true;
            for (var i = 0; i < elements.length; i++) {
                if ($(elements[i]).attr("sta") == 2) {
                    bool = true;
                } else {
                    bool = false;
                    break;
                }
            }        return bool;
        }
    };