| HTML - register - Code:
<div id="qick_reg" class="main" style="padding: 20px; width: 400px"> <div id="reg_loder">Đang kiểm tra dữ liệu...</div> <div class="main-head"><h2>Đăng ký thành viên</h2></div> <p id="reg_tip" class="alert-block">Bạn phải điền đầy đủ thông tin đăng ký.</p> <form onsubmit="submit_reg(); return false" action="/register?agreed=true&step=2" method="post" name="post" id="ucp"> <div class="main-content frm" style="border: 0px none;"> <fieldset class="frm-set multi" style="border: 0px none; margin:0;background-color: transparent;"> <dl><dt><label>Tên tài khoản :</label></dt> <dd> <input autocomplete="off" type="text" id="username_reg" name="username" value="" size="25" maxlength="25" /> <div id="name_reg" class="check_reg"> <div class="pwd_img reg_er kytu">Số ký tự phải từ 6 trở lên</div> <div class="pwd_img reg_er loi">Hãy chọn tài khoản khác</div> <div class="pwd_img reg_ok">Có thể dùng tài khoản này</div> </div> </dd> </dl> <dl><dt><label>Địa chỉ E-mail :</label></dt> <dd> <input autocomplete="off" class="ltr" type="text" id="email" name="email" value="" size="25" maxlength="64" /> <div id="email_reg" class="check_reg"> <div class="pwd_img reg_er">Không sử dụng địa chỉ này</div> <div class="pwd_img reg_wa">E-mail sẽ được kiểm sau</div> </div> </dd> </dl> <dl><dt><label>Mật khẩu :</label></dt> <dd> <input autocomplete="off" class="ltr" type="password" id="password_reg" name="password" value="" size="25" maxlength="25" /> <div class="check_reg" id="cont_pwd"> <div class="pwd_img reg_er kytu">Số ký tự phải từ 6 trở lên</div> <div class="pwd_img reg_er trung">Trùng tên đăng nhập</div> <div class="pwd_img" id="pwd_bad" style="display: none;">Quá đơn giản</div> <div class="pwd_img" id="pwd_middle" style="display: none;">Tạm ổn</div> <div class="pwd_img" id="pwd_good" style="display: none;">Vãi</div> </div> </dd> </dl> <dl><dt><label>Gõ lại mật khẩu :</label></dt> <dd> <input autocomplete="off" type="password" id="password_confirm" size="25" maxlength="25" name="password_confirm" class="inputbox narrow" /> <div id="pass_co" class="check_reg"> <div class="pwd_img reg_er">Chưa đúng</div> <div class="pwd_img reg_ok">Chính xác</div> </div> </dd> </dl> <dl class="frm-buttons"> <p style="padding: 10px 0px 0px; text-align: center;"> <input class="button2" type="submit" name="submit" value="Đăng ký" /> <input class="button2" type="reset" name="reset" value=" " style="border-color: #444!important;background: url(http://i15.servimg.com/u/f15/16/58/89/73/reload10.png) no-repeat center scroll #666!important;"> </p> </dl> </fieldset> </div> </form> </div> <script type="text/javascript"> var shortPass = "bad", badPass = "bad", goodPass = "good", strongPass = "strong";
function passwordStrength(a, b) { score = 0; if ("" == a) return null; if (4 > a.length) return shortPass; if (void 0 != b && a.toLowerCase() == b.toLowerCase()) return badPass; score += 4 * a.length; score += 1 * (checkRepetition(1, a).length - a.length); score += 1 * (checkRepetition(2, a).length - a.length); score += 1 * (checkRepetition(3, a).length - a.length); score += 1 * (checkRepetition(4, a).length - a.length); a.match(/(.*[0-9].*[0-9].*[0-9])/) && (score += 5); a.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/) && (score += 5); a.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/) && (score += 10); a.match(/([a-zA-Z])/) && a.match(/([0-9])/) && (score += 15); a.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && a.match(/([0-9])/) && (score += 15); a.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && a.match(/([a-zA-Z])/) && (score += 15); if (a.match(/^\w+$/) || a.match(/^\d+$/)) score -= 10; 0 > score && (score = 0); 100 < score && (score = 100); return 34 > score ? badPass : 68 > score ? goodPass : strongPass } function checkRepetition(a, b) { res = ""; for (i = 0; i < b.length; i++) { repeated = !0; for (j = 0; j < a && j + i + a < b.length; j++) repeated = repeated && b.charAt(j + i) == b.charAt(j + i + a); j < a && (repeated = !1); repeated ? (i += a - 1, repeated = !1) : res += b.charAt(i) } return res } function submit_reg() { $("#reg_tip").text("\u0110ang ki\u1ec3m tra d\u1eef li\u1ec7u..."); $("#qick_reg .reg_er").each(function () { "block" == $(this).css("display") && $(this).parent().parent().addClass("error") }); $("#qick_reg input").each(function () { "" == $(this).val() && $(this).parent().addClass("error") }); if ($("#qick_reg .error").length) { $("#reg_tip").text("L\u1ed7i th\u00f4ng tin \u0111\u0103ng k\u00fd.") } else { $("#reg_loder").show(); $.ajax({ type: "POST", url: "/register?agreed=true&step=2", data: { username: $("#qick_reg #username_reg").val(), email: $("#qick_reg #email").val(), "profile_field_3_-10": $("#qick_reg #profile_field_3_-10").val(), password: $("#qick_reg #password_reg").val(), submit: "Save" }, success: function (a) { if ($(a).find("p.message").length) { $("#reg_tip").text("Qu\u1ea3n tr\u1ecb vi\u00ean \u0111\u00e3 gi\u1edbi h\u1ea1n s\u1ed1 l\u1ea7n t\u1ea1o t\u00e0i kho\u1ea3n h\u00f4m nay."); $("#reg_loder").fadeOut(500); $("#qick_reg #ucp").hide() } else { $("#reg_tip").text("\u0110ang ki\u1ec3m tra t\u00e0i kho\u1ea3n, m\u1eadt kh\u1ea9u..."); if ($(a).find("#form_confirm").length) { $("#qick_reg .frm-buttons input[name='confirm_pass'], #qick_reg .frm-buttons input[name='auth[]']").remove(); $(a).find("input[name='confirm_pass'], input[name='auth[]']").prependTo("#qick_reg .frm-buttons"); $("#reg_tip").text("\u0110ang ki\u1ec3m tra E-mail..."); $.ajax({ type: "POST", url: "/register?agreed=true&step=2", data: { password_confirm: $("#qick_reg #password_confirm").val(), "auth[]": $("#qick_reg input[name='auth[]']:first").val(), username: $("#qick_reg #username_reg").val(), email: $("#qick_reg #email").val(), "profile_field_3_-10": $("#qick_reg #profile_field_3_-10").val(), password: $("#qick_reg #password_reg").val(), confirm_pass: $("#qick_reg input[name='confirm_pass']").val(), submit: "Save" }, success: function (a) { if ($(a).find("p.message a").length) { $("#reg_tip").text("\u0110\u0103ng k\u00fd th\u00e0nh c\u00f4ng."); $.ajax({ type: "POST", url: "/login", data: { username: $("#qick_reg #username_reg").val(), password: $("#qick_reg #password_reg").val(), login: "true" }, success: function () { window.location.reload() } }) } else if (-1 != $(a).find("p.center:first span").text().indexOf("e-mail address") || -1 != $(a).find("p.center:first span").text().indexOf("\u0111\u1ecba ch\u1ec9 email")) { $("#reg_tip").text("\u0110\u1ecba ch\u1ec9 E-mail kh\u00f4ng h\u1ee3p l\u1ec7 ho\u1eb7c \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng."); $("#reg_loder").fadeOut(500); $("#qick_reg #email").parent().addClass("error"); $("#email_reg .reg_er").show().next().hide() } } }) } else if (-1 != $(a).find("#main-content p.center:first span").text().indexOf("username has") || -1 != $(a).find("p.center:first span").text().indexOf("\u00ean truy c\u1eadp")) { $("#reg_tip").text("T\u00e0i kho\u1ea3n \u0111\u00e3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng ho\u1eb7c b\u1ecb c\u1ea5m."); $("#reg_loder").fadeOut(500); $("#qick_reg #username_reg").parent().addClass("error"); $("#name_reg div").hide(); $("#name_reg .reg_er.loi").show() } else if (0 == $(a).find("p.center:first span").text().indexOf("Your password") || 0 == $(a).find("p.center:first span").text().indexOf("M\u1eadt kh\u1ea9u")) { $("#reg_tip").text("M\u1eadt kh\u1ea9u ph\u1ea3i t\u1eeb 6 - 32 k\u00fd t\u1ef1 v\u00e0 kh\u00f4ng \u0111\u01b0\u1ee3c tr\u00f9ng t\u00e0i kho\u1ea3n."); $("#reg_loder").fadeOut(500); $("#qick_reg #password_reg, #qick_reg #password_confirm").val("").parent().addClass("error"); $("#qick_reg #cont_pwd div, #qick_reg #pass_co div").hide() } } } }) } } function conpass() { "" != $("#qick_reg #password_confirm").val() ? ($("#qick_reg #password_confirm").parent().removeClass("error"), $("#password_reg").val() != $("#qick_reg #password_confirm").val() ? $("#pass_co .reg_er").show().next().hide() : $("#pass_co .reg_er").hide().next().show()) : $("#pass_co div").hide() } function check_ma_reg() { "" != $("#qick_reg #email").val() ? ($("#qick_reg #email").parent().removeClass("error"), isEmail($("#qick_reg #email").val()) ? $("#email_reg .reg_er").hide().next().show() : $("#email_reg .reg_er").show().next().hide()) : $("#email_reg div").hide() } function check_un_reg() { setTimeout(function () { "" != $("#qick_reg #username_reg").val() ? ($("#qick_reg #username_reg").parent().removeClass("error"), 6 > $("#qick_reg #username_reg").val().length ? ($("#name_reg .reg_er.kytu").show(), $("#name_reg .reg_er.loi, #name_reg .reg_ok").hide()) : $.ajax({ type: "GET", url: "/search?mode=searchuser&fieldname=username", data: { search_username: $("#qick_reg #username_reg").val(), time: timestamp() }, success: function (a) { $("#name_reg div").hide(); $(a).find("#username_list").val() == $("#qick_reg #username_reg").val() ? $("#name_reg .reg_er.loi").show() : $("#name_reg .reg_ok").show() } })) : $("#name_reg div").hide() }, 500) } function isEmail(a) { return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/.test(a) } $("#qick_reg input[name='reset']").click(function () { $("#reg_tip").text("B\u1ea1n ph\u1ea3i \u0111i\u1ec1n \u0111\u1ea7y \u0111\u1ee7 th\u00f4ng tin \u0111\u0103ng k\u00fd."); $("#qick_reg dd").removeClass("error"); $("#qick_reg .pwd_img").hide() }); $("#qick_reg #username_reg").keyup(function () { check_un_reg(); $("#qick_reg #username_reg").focus(function () { check_un_reg() }) }); $("#qick_reg #email").keyup(function () { check_ma_reg(); $("#qick_reg #email").focus(function () { check_ma_reg() }) }); $("#qick_reg #password_confirm").keyup(function () { conpass() }); $("#qick_reg #password_reg, #qick_reg #username_reg").keyup(function () { if ("" != $("#qick_reg #password_reg").val()) if ($("#qick_reg #password_reg").parent().removeClass("error"), 6 > $("#qick_reg #password_reg").val().length) $("#cont_pwd div").hide(), $("#cont_pwd .reg_er.kytu").show(); else if ($("#cont_pwd .reg_er.kytu").hide(), $("#qick_reg #password_reg").val() == $("#qick_reg #username_reg").val()) $("#cont_pwd div").hide(), $("#cont_pwd .reg_er.trung").show(); else switch ($("#cont_pwd .reg_er.trung").hide(), passwordStrength($("#qick_reg #password_reg").val(), $("#qick_reg #username_reg").val())) { case "bad": $("#pwd_middle,#pwd_good").hide(); $("#pwd_bad").show(); break; case "good": $("#pwd_good,#pwd_bad").hide(); $("#pwd_middle").show(); break; case "strong": $("#pwd_middle,#pwd_bad").hide(), $("#pwd_good").show() } else $("#cont_pwd div, #pass_co div").hide(), $("#qick_reg #password_confirm").val(""); "" != $("#qick_reg #password_confirm").val() && conpass() }); </script> | |