Files
OnlineJudge/static/src/js/app/oj/account/register.js
virusdefender 875e3b1671 将注册页面用户名和密码的验证改为了输入框失去焦点的时候才验证,防止发送大量请求。
增加注册的时候向后端发送邮箱字段。
整理 js 代码风格。
2015-08-06 09:43:14 +08:00

97 lines
3.5 KiB
JavaScript

require(["jquery", "bs_alert", "csrf", "validation"], function ($, bs_alert, csrfHeader) {
$("#register-form")
.formValidation({
framework: "bootstrap",
fields: {
username: {
trigger: 'blur',
validators: {
notEmpty: {
message: "请填写用户名"
},
stringLength: {
min: 3,
max: 30,
message: '用户名长度必须在3到30位之间'
},
remote: {
message: "用户名已存在",
url: "/api/username_check/",
field: 'username'
}
}
},
password: {
validators: {
notEmpty: {
message: "请填写密码"
},
stringLength: {
min: 6,
max: 30,
message: '密码长度必须在6到30位之间'
}
},
onSuccess: function (e, data) {
data.fv.revalidateField('confirm_password');
}
},
real_name: {
validators: {
notEmpty: {
message: "请填写真实姓名"
}
}
},
confirm_password: {
validators: {
notEmpty: {
message: "请填写确认密码"
},
confirm: {
original: $("#password"),
message: "两次输入的密码必须一致"
}
}
},
email: {
trigger: 'blur',
validators: {
notEmpty: {
message: "请填写电子邮箱邮箱地址"
},
emailAddress: {
message: "请填写有效的邮箱地址"
},
remote: {
message: "您已经注册过了",
url: "/api/email_check/",
field: 'email'
}
}
}
}
}
).on('success.form.fv', function (e) {
e.preventDefault();
var username = $("#username").val();
var real_name = $("#real_name").val();
var password = $("#password").val();
var email = $("#email").val();
$.ajax({
beforeSend: csrfHeader,
url: "/api/register/",
data: {username: username, real_name: real_name, password: password, email: email},
dataType: "json",
method: "post",
success: function (data) {
if (!data.code) {
window.location.href = "/login/";
}
else {
bs_alert(data.data);
}
}
})
});
});