mirror of https://github.com/jumpserver/jumpserver
156 lines
5.5 KiB
JavaScript
Executable File
156 lines
5.5 KiB
JavaScript
Executable File
/*********************************
|
|
* Themes, rules, and i18n support
|
|
* Locale: Chinese; 中文
|
|
*********************************/
|
|
(function(factory) {
|
|
if (typeof define === 'function') {
|
|
define(function(require, exports, module){
|
|
var $ = require('jquery');
|
|
$._VALIDATOR_URI = module.uri;
|
|
require('../src/jquery.validator')($);
|
|
factory($);
|
|
});
|
|
} else {
|
|
factory(jQuery);
|
|
}
|
|
}(function($) {
|
|
/* Global configuration
|
|
*/
|
|
$.validator.config({
|
|
//stopOnError: false,
|
|
//theme: 'yellow_right',
|
|
defaultMsg: "{0}格式不正确",
|
|
loadingMsg: "正在验证...",
|
|
|
|
// Custom rules
|
|
rules: {
|
|
digits: [/^\d+$/, "请输入数字"]
|
|
,letters: [/^[a-z]+$/i, "{0}只能输入字母"]
|
|
,tel: [/^(?:(?:0\d{2,3}[\- ]?[1-9]\d{6,7})|(?:[48]00[\- ]?[1-9]\d{6}))$/, "电话格式不正确"]
|
|
,mobile: [/^1[3-9]\d{9}$/, "手机号格式不正确"]
|
|
,email: [/^[\w\+\-]+(\.[\w\+\-]+)*@[a-z\d\-]+(\.[a-z\d\-]+)*\.([a-z]{2,4})$/i, "邮箱格式不正确"]
|
|
,qq: [/^[1-9]\d{4,}$/, "QQ号格式不正确"]
|
|
,date: [/^\d{4}-\d{1,2}-\d{1,2}$/, "请输入正确的日期,例:yyyy-mm-dd"]
|
|
,time: [/^([01]\d|2[0-3])(:[0-5]\d){1,2}$/, "请输入正确的时间,例:14:30或14:30:00"]
|
|
,ID_card: [/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/, "请输入正确的身份证号码"]
|
|
,url: [/^(https?|ftp):\/\/[^\s]+$/i, "网址格式不正确"]
|
|
,postcode: [/^[1-9]\d{5}$/, "邮政编码格式不正确"]
|
|
,chinese: [/^[\u0391-\uFFE5]+$/, "请输入中文"]
|
|
,username: [/^\w{3,12}$/, "请输入3-12位数字、字母、下划线"]
|
|
,password: [/^[0-9a-zA-Z]{6,16}$/, "密码由6-16位数字、字母组成"]
|
|
,accept: function (element, params){
|
|
if (!params) return true;
|
|
var ext = params[0];
|
|
return (ext === '*') ||
|
|
(new RegExp(".(?:" + (ext || "png|jpg|jpeg|gif") + ")$", "i")).test(element.value) ||
|
|
this.renderMsg("只接受{1}后缀", ext.replace('|', ','));
|
|
}
|
|
|
|
}
|
|
});
|
|
|
|
/* Default error messages
|
|
*/
|
|
$.validator.config({
|
|
messages: {
|
|
required: "{0}不能为空",
|
|
remote: "{0}已被使用",
|
|
integer: {
|
|
'*': "请输入整数",
|
|
'+': "请输入正整数",
|
|
'+0': "请输入正整数或0",
|
|
'-': "请输入负整数",
|
|
'-0': "请输入负整数或0"
|
|
},
|
|
match: {
|
|
eq: "{0}与{1}不一致",
|
|
neq: "{0}与{1}不能相同",
|
|
lt: "{0}必须小于{1}",
|
|
gt: "{0}必须大于{1}",
|
|
lte: "{0}必须小于或等于{1}",
|
|
gte: "{0}必须大于或等于{1}"
|
|
},
|
|
range: {
|
|
rg: "请输入{1}到{2}的数",
|
|
gte: "请输入大于或等于{1}的数",
|
|
lte: "请输入小于或等于{1}的数"
|
|
},
|
|
checked: {
|
|
eq: "请选择{1}项",
|
|
rg: "请选择{1}到{2}项",
|
|
gte: "请至少选择{1}项",
|
|
lte: "请最多选择{1}项"
|
|
},
|
|
length: {
|
|
eq: "请输入{1}个字符",
|
|
rg: "请输入{1}到{2}个字符",
|
|
gte: "请至少输入{1}个字符",
|
|
lte: "请最多输入{1}个字符",
|
|
eq_2: "",
|
|
rg_2: "",
|
|
gte_2: "",
|
|
lte_2: ""
|
|
}
|
|
}
|
|
});
|
|
|
|
/* Themes
|
|
*/
|
|
var TPL_ARROW = '<span class="n-arrow"><b>◆</b><i>◆</i></span>';
|
|
$.validator.setTheme({
|
|
'simple_right': {
|
|
formClass: 'n-simple',
|
|
msgClass: 'n-right'
|
|
},
|
|
'simple_bottom': {
|
|
formClass: 'n-simple',
|
|
msgClass: 'n-bottom'
|
|
},
|
|
'yellow_top': {
|
|
formClass: 'n-yellow',
|
|
msgClass: 'n-top',
|
|
msgArrow: TPL_ARROW
|
|
},
|
|
'yellow_right': {
|
|
formClass: 'n-yellow',
|
|
msgClass: 'n-right',
|
|
msgArrow: TPL_ARROW
|
|
},
|
|
'yellow_right_effect': {
|
|
formClass: 'n-yellow',
|
|
msgClass: 'n-right',
|
|
msgArrow: TPL_ARROW,
|
|
msgShow: function($msgbox, type){
|
|
var $el = $msgbox.children();
|
|
if ($el.is(':animated')) return;
|
|
if (type === 'error') {
|
|
$el.css({
|
|
left: '20px',
|
|
opacity: 0
|
|
}).delay(100).show().stop().animate({
|
|
left: '-4px',
|
|
opacity: 1
|
|
}, 150).animate({
|
|
left: '3px'
|
|
}, 80).animate({
|
|
left: 0
|
|
}, 80);
|
|
} else {
|
|
$el.css({
|
|
left: 0,
|
|
opacity: 1
|
|
}).fadeIn(200);
|
|
}
|
|
},
|
|
msgHide: function($msgbox, type){
|
|
var $el = $msgbox.children();
|
|
$el.stop().delay(100).show().animate({
|
|
left: '20px',
|
|
opacity: 0
|
|
}, 300, function(){
|
|
$msgbox.hide();
|
|
});
|
|
}
|
|
}
|
|
});
|
|
})); |