1057 lines
41 KiB
JavaScript
1057 lines
41 KiB
JavaScript
/*
|
||
Validform version 5.3.2
|
||
By sean during April 7, 2010 - March 26, 2013
|
||
For more information, please visit http://validform.rjboy.cn
|
||
Validform is available under the terms of the MIT license.
|
||
*/
|
||
|
||
(function(d, f, b) {
|
||
var g = null,
|
||
j = null,
|
||
i = true;
|
||
var e = {
|
||
tit: "",
|
||
w: {
|
||
"*": "不能为空!",
|
||
"*6-16": "请填写6到16位任意字符!",
|
||
"n": "请填写数字!",
|
||
"n6-16": "请填写6到16位数字!",
|
||
"s": "不能输入特殊字符!",
|
||
"s6-18": "请填写6到18位字符!",
|
||
"p": "请填写邮政编码!",
|
||
"m": "请填写手机号码!",
|
||
"e": "邮箱地址格式不对!",
|
||
"url": "请填写网址!"
|
||
},
|
||
def: "请填写正确信息!",
|
||
undef: "datatype未定义!",
|
||
reck: "两次输入的内容不一致!",
|
||
r: "",
|
||
c: "",
|
||
s: "请{填写|选择}{0|信息}!",
|
||
v: "所填信息没有经过验证,请稍后…",
|
||
p: "正在加载中,请稍后..."
|
||
};
|
||
d.Tipmsg = e;
|
||
var a = function(l, n, k) {
|
||
var n = d.extend({},
|
||
a.defaults, n);
|
||
n.datatype && d.extend(a.util.dataType, n.datatype);
|
||
var m = this;
|
||
m.tipmsg = {
|
||
w: {}
|
||
};
|
||
m.forms = l;
|
||
m.objects = [];
|
||
if (k === true) {
|
||
return false
|
||
}
|
||
l.each(function() {
|
||
if (this.validform_inited == "inited") {
|
||
return true
|
||
}
|
||
this.validform_inited = "inited";
|
||
var p = this;
|
||
p.settings = d.extend({},
|
||
n);
|
||
var o = d(p);
|
||
p.validform_status = "normal";
|
||
o.data("tipmsg", m.tipmsg);
|
||
o.delegate("[datatype]", "blur",
|
||
function() {
|
||
var q = arguments[1];
|
||
a.util.check.call(this, o, q)
|
||
});
|
||
o.delegate(":text", "keypress",
|
||
function(q) {
|
||
if (q.keyCode == 13 && o.find(":submit").length == 0) {
|
||
o.submit()
|
||
}
|
||
});
|
||
a.util.enhance.call(o, p.settings.tiptype, p.settings.usePlugin, p.settings.tipSweep);
|
||
p.settings.btnSubmit && o.find(p.settings.btnSubmit).bind("click",
|
||
function() {
|
||
o.trigger("submit");
|
||
return false
|
||
});
|
||
o.submit(function() {
|
||
var q = a.util.submitForm.call(o, p.settings);
|
||
q === b && (q = true);
|
||
return q
|
||
});
|
||
o.find("[type='reset']").add(o.find(p.settings.btnReset)).bind("click",
|
||
function() {
|
||
a.util.resetForm.call(o)
|
||
})
|
||
});
|
||
if (n.tiptype == 1 || (n.tiptype == 2 || n.tiptype == 3) && n.ajaxPost) {
|
||
c()
|
||
}
|
||
};
|
||
a.defaults = {
|
||
tiptype: 1,
|
||
tipSweep: false,
|
||
showAllError: false,
|
||
postonce: false,
|
||
ajaxPost: false
|
||
};
|
||
a.util = {
|
||
dataType: {
|
||
"*": /[\w\W]+/,
|
||
"*6-16": /^[\w\W]{6,16}$/,
|
||
n: /^\d+$/,
|
||
"n6-16": /^\d{6,16}$/,
|
||
s: /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]+$/,
|
||
"s6-18": /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,18}$/,
|
||
p: /^[0-9]{6}$/,
|
||
m: /^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$/,
|
||
e: /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
|
||
url: /^(\w+:\/\/)?\w+(\.\w+)+.*$/
|
||
},
|
||
toString: Object.prototype.toString,
|
||
isEmpty: function(k) {
|
||
return k === "" || k === d.trim(this.attr("tip"))
|
||
},
|
||
getValue: function(m) {
|
||
var l, k = this;
|
||
if (m.is(":radio")) {
|
||
l = k.find(":radio[name='" + m.attr("name") + "']:checked").val();
|
||
l = l === b ? "": l
|
||
} else {
|
||
if (m.is(":checkbox")) {
|
||
l = "";
|
||
k.find(":checkbox[name='" + m.attr("name") + "']:checked").each(function() {
|
||
l += d(this).val() + ","
|
||
});
|
||
l = l === b ? "": l
|
||
} else {
|
||
l = m.val()
|
||
}
|
||
}
|
||
l = d.trim(l);
|
||
return a.util.isEmpty.call(m, l) ? "": l
|
||
},
|
||
enhance: function(l, m, n, k) {
|
||
var o = this;
|
||
o.find("[datatype]").each(function() {
|
||
if (l == 2) {
|
||
if (d(this).parent().next().find(".Validform_checktip").length == 0) {
|
||
d(this).parent().next().append("<span class='Validform_checktip' />");
|
||
d(this).siblings(".Validform_checktip").remove()
|
||
}
|
||
} else {
|
||
if (l == 3 || l == 4) {
|
||
if (d(this).siblings(".Validform_checktip").length == 0) {
|
||
d(this).parent().append("<span class='Validform_checktip' />");
|
||
d(this).parent().next().find(".Validform_checktip").remove()
|
||
}
|
||
}
|
||
}
|
||
});
|
||
o.find("input[recheck]").each(function() {
|
||
if (this.validform_inited == "inited") {
|
||
return true
|
||
}
|
||
this.validform_inited = "inited";
|
||
var q = d(this);
|
||
var p = o.find("input[name='" + d(this).attr("recheck") + "']");
|
||
p.bind("keyup",
|
||
function() {
|
||
if (p.val() == q.val() && p.val() != "") {
|
||
if (p.attr("tip")) {
|
||
if (p.attr("tip") == p.val()) {
|
||
return false
|
||
}
|
||
}
|
||
q.trigger("blur")
|
||
}
|
||
}).bind("blur",
|
||
function() {
|
||
if (p.val() != q.val() && q.val() != "") {
|
||
if (q.attr("tip")) {
|
||
if (q.attr("tip") == q.val()) {
|
||
return false
|
||
}
|
||
}
|
||
q.trigger("blur")
|
||
}
|
||
})
|
||
});
|
||
o.find("[tip]").each(function() {
|
||
if (this.validform_inited == "inited") {
|
||
return true
|
||
}
|
||
this.validform_inited = "inited";
|
||
var q = d(this).attr("tip");
|
||
var p = d(this).attr("altercss");
|
||
d(this).focus(function() {
|
||
if (d(this).val() == q) {
|
||
d(this).val("");
|
||
if (p) {
|
||
d(this).removeClass(p)
|
||
}
|
||
}
|
||
}).blur(function() {
|
||
if (d.trim(d(this).val()) === "") {
|
||
d(this).val(q);
|
||
if (p) {
|
||
d(this).addClass(p)
|
||
}
|
||
}
|
||
})
|
||
});
|
||
o.find(":checkbox[datatype],:radio[datatype]").each(function() {
|
||
if (this.validform_inited == "inited") {
|
||
return true
|
||
}
|
||
this.validform_inited = "inited";
|
||
var q = d(this);
|
||
var p = q.attr("name");
|
||
o.find("[name='" + p + "']").filter(":checkbox,:radio").bind("click",
|
||
function() {
|
||
setTimeout(function() {
|
||
q.trigger("blur")
|
||
},
|
||
0)
|
||
})
|
||
});
|
||
o.find("select[datatype][multiple]").bind("click",
|
||
function() {
|
||
var p = d(this);
|
||
setTimeout(function() {
|
||
p.trigger("blur")
|
||
},
|
||
0)
|
||
});
|
||
a.util.usePlugin.call(o, m, l, n, k)
|
||
},
|
||
usePlugin: function(o, l, n, r) {
|
||
var s = this,
|
||
o = o || {};
|
||
if (s.find("input[plugin='swfupload']").length && typeof(swfuploadhandler) != "undefined") {
|
||
var k = {
|
||
custom_settings: {
|
||
form: s,
|
||
showmsg: function(v, t, u) {
|
||
a.util.showmsg.call(s, v, l, {
|
||
obj: s.find("input[plugin='swfupload']"),
|
||
type: t,
|
||
sweep: n
|
||
})
|
||
}
|
||
}
|
||
};
|
||
k = d.extend(true, {},
|
||
o.swfupload, k);
|
||
s.find("input[plugin='swfupload']").each(function(t) {
|
||
if (this.validform_inited == "inited") {
|
||
return true
|
||
}
|
||
this.validform_inited = "inited";
|
||
d(this).val("");
|
||
swfuploadhandler.init(k, t)
|
||
})
|
||
}
|
||
if (s.find("input[plugin='datepicker']").length && d.fn.datePicker) {
|
||
o.datepicker = o.datepicker || {};
|
||
if (o.datepicker.format) {
|
||
Date.format = o.datepicker.format;
|
||
delete o.datepicker.format
|
||
}
|
||
if (o.datepicker.firstDayOfWeek) {
|
||
Date.firstDayOfWeek = o.datepicker.firstDayOfWeek;
|
||
delete o.datepicker.firstDayOfWeek
|
||
}
|
||
s.find("input[plugin='datepicker']").each(function(t) {
|
||
if (this.validform_inited == "inited") {
|
||
return true
|
||
}
|
||
this.validform_inited = "inited";
|
||
o.datepicker.callback && d(this).bind("dateSelected",
|
||
function() {
|
||
var u = new Date(d.event._dpCache[this._dpId].getSelected()[0]).asString(Date.format);
|
||
o.datepicker.callback(u, this)
|
||
});
|
||
d(this).datePicker(o.datepicker)
|
||
})
|
||
}
|
||
if (s.find("input[plugin*='passwordStrength']").length && d.fn.passwordStrength) {
|
||
o.passwordstrength = o.passwordstrength || {};
|
||
o.passwordstrength.showmsg = function(u, v, t) {
|
||
a.util.showmsg.call(s, v, l, {
|
||
obj: u,
|
||
type: t,
|
||
sweep: n
|
||
})
|
||
};
|
||
s.find("input[plugin='passwordStrength']").each(function(t) {
|
||
if (this.validform_inited == "inited") {
|
||
return true
|
||
}
|
||
this.validform_inited = "inited";
|
||
d(this).passwordStrength(o.passwordstrength)
|
||
})
|
||
}
|
||
if (r != "addRule" && o.jqtransform && d.fn.jqTransSelect) {
|
||
if (s[0].jqTransSelected == "true") {
|
||
return
|
||
}
|
||
s[0].jqTransSelected = "true";
|
||
var m = function(t) {
|
||
var u = d(".jqTransformSelectWrapper ul:visible");
|
||
u.each(function() {
|
||
var v = d(this).parents(".jqTransformSelectWrapper:first").find("select").get(0);
|
||
if (! (t && v.oLabel && v.oLabel.get(0) == t.get(0))) {
|
||
d(this).hide()
|
||
}
|
||
})
|
||
};
|
||
var p = function(t) {
|
||
if (d(t.target).parents(".jqTransformSelectWrapper").length === 0) {
|
||
m(d(t.target))
|
||
}
|
||
};
|
||
var q = function() {
|
||
d(document).mousedown(p)
|
||
};
|
||
if (o.jqtransform.selector) {
|
||
s.find(o.jqtransform.selector).filter('input:submit, input:reset, input[type="button"]').jqTransInputButton();
|
||
s.find(o.jqtransform.selector).filter("input:text, input:password").jqTransInputText();
|
||
s.find(o.jqtransform.selector).filter("input:checkbox").jqTransCheckBox();
|
||
s.find(o.jqtransform.selector).filter("input:radio").jqTransRadio();
|
||
s.find(o.jqtransform.selector).filter("textarea").jqTransTextarea();
|
||
if (s.find(o.jqtransform.selector).filter("select").length > 0) {
|
||
s.find(o.jqtransform.selector).filter("select").jqTransSelect();
|
||
q()
|
||
}
|
||
} else {
|
||
s.jqTransform()
|
||
}
|
||
s.find(".jqTransformSelectWrapper").find("li a").click(function() {
|
||
d(this).parents(".jqTransformSelectWrapper").find("select").trigger("blur")
|
||
})
|
||
}
|
||
},
|
||
getNullmsg: function(o) {
|
||
var n = this;
|
||
var m = /[\u4E00-\u9FA5\uf900-\ufa2da-zA-Z\s]+/g;
|
||
var k;
|
||
var l = o[0].settings.label || ".Validform_label";
|
||
l = n.siblings(l).eq(0).text() || n.siblings().find(l).eq(0).text() || n.parent().siblings(l).eq(0).text() || n.parent().siblings().find(l).eq(0).text();
|
||
l = l.replace(/\s(?![a-zA-Z])/g, "").match(m);
|
||
l = l ? l.join("") : [""];
|
||
m = /\{(.+)\|(.+)\}/;
|
||
k = o.data("tipmsg").s || e.s;
|
||
if (l != "") {
|
||
k = k.replace(/\{0\|(.+)\}/, l);
|
||
if (n.attr("recheck")) {
|
||
k = k.replace(/\{(.+)\}/, "");
|
||
n.attr("nullmsg", k);
|
||
return k
|
||
}
|
||
} else {
|
||
k = n.is(":checkbox,:radio,select") ? k.replace(/\{0\|(.+)\}/, "") : k.replace(/\{0\|(.+)\}/, "$1")
|
||
}
|
||
k = n.is(":checkbox,:radio,select") ? k.replace(m, "$2") : k.replace(m, "$1");
|
||
n.attr("nullmsg", k);
|
||
return k
|
||
},
|
||
getErrormsg: function(s, n, u) {
|
||
var o = /^(.+?)((\d+)-(\d+))?$/,
|
||
m = /^(.+?)(\d+)-(\d+)$/,
|
||
l = /(.*?)\d+(.+?)\d+(.*)/,
|
||
q = n.match(o),
|
||
t,
|
||
r;
|
||
if (u == "recheck") {
|
||
r = s.data("tipmsg").reck || e.reck;
|
||
return r
|
||
}
|
||
var p = d.extend({},
|
||
e.w, s.data("tipmsg").w);
|
||
if (q[0] in p) {
|
||
return s.data("tipmsg").w[q[0]] || e.w[q[0]]
|
||
}
|
||
for (var k in p) {
|
||
if (k.indexOf(q[1]) != -1 && m.test(k)) {
|
||
r = (s.data("tipmsg").w[k] || e.w[k]).replace(l, "$1" + q[3] + "$2" + q[4] + "$3");
|
||
s.data("tipmsg").w[q[0]] = r;
|
||
return r
|
||
}
|
||
}
|
||
return s.data("tipmsg").def || e.def
|
||
},
|
||
_regcheck: function(t, n, u, A) {
|
||
var A = A,
|
||
y = null,
|
||
v = false,
|
||
o = /\/.+\//g,
|
||
k = /^(.+?)(\d+)-(\d+)$/,
|
||
l = 3;
|
||
if (o.test(t)) {
|
||
var s = t.match(o)[0].slice(1, -1);
|
||
var r = t.replace(o, "");
|
||
var q = RegExp(s, r);
|
||
v = q.test(n)
|
||
} else {
|
||
if (a.util.toString.call(a.util.dataType[t]) == "[object Function]") {
|
||
v = a.util.dataType[t](n, u, A, a.util.dataType);
|
||
if (v === true || v === b) {
|
||
v = true
|
||
} else {
|
||
y = v;
|
||
v = false
|
||
}
|
||
} else {
|
||
if (! (t in a.util.dataType)) {
|
||
var m = t.match(k),
|
||
z;
|
||
if (!m) {
|
||
v = false;
|
||
y = A.data("tipmsg").undef || e.undef
|
||
} else {
|
||
for (var B in a.util.dataType) {
|
||
z = B.match(k);
|
||
if (!z) {
|
||
continue
|
||
}
|
||
if (m[1] === z[1]) {
|
||
var w = a.util.dataType[B].toString(),
|
||
r = w.match(/\/[mgi]*/g)[1].replace("/", ""),
|
||
x = new RegExp("\\{" + z[2] + "," + z[3] + "\\}", "g");
|
||
w = w.replace(/\/[mgi]*/g, "/").replace(x, "{" + m[2] + "," + m[3] + "}").replace(/^\//, "").replace(/\/$/, "");
|
||
a.util.dataType[t] = new RegExp(w, r);
|
||
break
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (a.util.toString.call(a.util.dataType[t]) == "[object RegExp]") {
|
||
v = a.util.dataType[t].test(n)
|
||
}
|
||
}
|
||
}
|
||
if (v) {
|
||
l = 2;
|
||
y = u.attr("sucmsg") || A.data("tipmsg").r || e.r;
|
||
if (u.attr("recheck")) {
|
||
var p = A.find("input[name='" + u.attr("recheck") + "']:first");
|
||
if (n != p.val()) {
|
||
v = false;
|
||
l = 3;
|
||
y = u.attr("errormsg") || a.util.getErrormsg.call(u, A, t, "recheck")
|
||
}
|
||
}
|
||
} else {
|
||
y = y || u.attr("errormsg") || a.util.getErrormsg.call(u, A, t);
|
||
if (a.util.isEmpty.call(u, n)) {
|
||
y = u.attr("nullmsg") || a.util.getNullmsg.call(u, A)
|
||
}
|
||
}
|
||
return {
|
||
passed: v,
|
||
type: l,
|
||
info: y
|
||
}
|
||
},
|
||
regcheck: function(n, s, m) {
|
||
var t = this,
|
||
k = null,
|
||
l = false,
|
||
r = 3;
|
||
if (m.attr("ignore") === "ignore" && a.util.isEmpty.call(m, s)) {
|
||
if (m.data("cked")) {
|
||
k = ""
|
||
}
|
||
return {
|
||
passed: true,
|
||
type: 4,
|
||
info: k
|
||
}
|
||
}
|
||
m.data("cked", "cked");
|
||
var u = a.util.parseDatatype(n);
|
||
var q;
|
||
for (var p = 0; p < u.length; p++) {
|
||
for (var o = 0; o < u[p].length; o++) {
|
||
q = a.util._regcheck(u[p][o], s, m, t);
|
||
if (!q.passed) {
|
||
break
|
||
}
|
||
}
|
||
if (q.passed) {
|
||
break
|
||
}
|
||
}
|
||
return q
|
||
},
|
||
parseDatatype: function(r) {
|
||
var q = /\/.+?\/[mgi]*(?=(,|$|\||\s))|[\w\*-]+/g,
|
||
o = r.match(q),
|
||
p = r.replace(q, "").replace(/\s*/g, "").split(""),
|
||
l = [],
|
||
k = 0;
|
||
l[0] = [];
|
||
l[0].push(o[0]);
|
||
for (var s = 0; s < p.length; s++) {
|
||
if (p[s] == "|") {
|
||
k++;
|
||
l[k] = []
|
||
}
|
||
l[k].push(o[s + 1])
|
||
}
|
||
return l
|
||
},
|
||
showmsg: function(n, l, m, k) {
|
||
if (n == b) {
|
||
return
|
||
}
|
||
if (k == "bycheck" && m.sweep && (m.obj && !m.obj.is(".Validform_error") || typeof l == "function")) {
|
||
return
|
||
}
|
||
d.extend(m, {
|
||
curform: this
|
||
});
|
||
if (typeof l == "function") {
|
||
l(n, m, a.util.cssctl);
|
||
return
|
||
}
|
||
if (l == 1 || k == "byajax" && l != 4) {
|
||
j.find(".Validform_info").html(n)
|
||
}
|
||
if (l == 1 && k != "bycheck" && m.type != 2 || k == "byajax" && l != 4) {
|
||
i = false;
|
||
j.find(".iframe").css("height", j.outerHeight());
|
||
j.show();
|
||
h(j, 100)
|
||
}
|
||
if (l == 2 && m.obj) {
|
||
m.obj.parent().next().find(".Validform_checktip").html(n);
|
||
a.util.cssctl(m.obj.parent().next().find(".Validform_checktip"), m.type)
|
||
}
|
||
if ((l == 3 || l == 4) && m.obj) {
|
||
m.obj.siblings(".Validform_checktip").html(n);
|
||
a.util.cssctl(m.obj.siblings(".Validform_checktip"), m.type)
|
||
}
|
||
},
|
||
cssctl: function(l, k) {
|
||
switch (k) {
|
||
case 1:
|
||
l.removeClass("Validform_right Validform_wrong").addClass("Validform_checktip Validform_loading");
|
||
break;
|
||
case 2:
|
||
l.removeClass("Validform_wrong Validform_loading").addClass("Validform_checktip Validform_right");
|
||
break;
|
||
case 4:
|
||
l.removeClass("Validform_right Validform_wrong Validform_loading").addClass("Validform_checktip");
|
||
break;
|
||
default:
|
||
l.removeClass("Validform_right Validform_loading").addClass("Validform_checktip Validform_wrong")
|
||
}
|
||
},
|
||
check: function(v, t, n) {
|
||
var o = v[0].settings;
|
||
var t = t || "";
|
||
var k = a.util.getValue.call(v, d(this));
|
||
if (o.ignoreHidden && d(this).is(":hidden") || d(this).data("dataIgnore") === "dataIgnore") {
|
||
return true
|
||
}
|
||
if (o.dragonfly && !d(this).data("cked") && a.util.isEmpty.call(d(this), k) && d(this).attr("ignore") != "ignore") {
|
||
return false
|
||
}
|
||
var s = a.util.regcheck.call(v, d(this).attr("datatype"), k, d(this));
|
||
if (k == this.validform_lastval && !d(this).attr("recheck") && t == "") {
|
||
return s.passed ? true: false
|
||
}
|
||
this.validform_lastval = k;
|
||
var r;
|
||
g = r = d(this);
|
||
if (!s.passed) {
|
||
a.util.abort.call(r[0]);
|
||
if (!n) {
|
||
a.util.showmsg.call(v, s.info, o.tiptype, {
|
||
obj: d(this),
|
||
type: s.type,
|
||
sweep: o.tipSweep
|
||
},
|
||
"bycheck"); ! o.tipSweep && r.addClass("Validform_error")
|
||
}
|
||
return false
|
||
}
|
||
var q = d(this).attr("ajaxurl");
|
||
if (q && !a.util.isEmpty.call(d(this), k) && !n) {
|
||
var m = d(this);
|
||
if (t == "postform") {
|
||
m[0].validform_subpost = "postform"
|
||
} else {
|
||
m[0].validform_subpost = ""
|
||
}
|
||
if (m[0].validform_valid === "posting" && k == m[0].validform_ckvalue) {
|
||
return "ajax"
|
||
}
|
||
m[0].validform_valid = "posting";
|
||
m[0].validform_ckvalue = k;
|
||
a.util.showmsg.call(v, v.data("tipmsg").c || e.c, o.tiptype, {
|
||
obj: m,
|
||
type: 1,
|
||
sweep: o.tipSweep
|
||
},
|
||
"bycheck");
|
||
a.util.abort.call(r[0]);
|
||
var u = d.extend(true, {},
|
||
o.ajaxurl || {});
|
||
var p = {
|
||
type: "POST",
|
||
cache: false,
|
||
url: q,
|
||
data: "param=" + encodeURIComponent(k) + "&name=" + encodeURIComponent(d(this).attr("name")),
|
||
success: function(x) {
|
||
if (d.trim(x.status) === "y") {
|
||
m[0].validform_valid = "true";
|
||
x.info && m.attr("sucmsg", x.info);
|
||
a.util.showmsg.call(v, m.attr("sucmsg") || v.data("tipmsg").r || e.r, o.tiptype, {
|
||
obj: m,
|
||
type: 2,
|
||
sweep: o.tipSweep
|
||
},
|
||
"bycheck");
|
||
r.removeClass("Validform_error");
|
||
g = null;
|
||
if (m[0].validform_subpost == "postform") {
|
||
v.trigger("submit")
|
||
}
|
||
} else {
|
||
m[0].validform_valid = x.info;
|
||
a.util.showmsg.call(v, x.info, o.tiptype, {
|
||
obj: m,
|
||
type: 3,
|
||
sweep: o.tipSweep
|
||
});
|
||
r.addClass("Validform_error")
|
||
}
|
||
r[0].validform_ajax = null
|
||
},
|
||
error: function(x) {
|
||
if (x.status == "200") {
|
||
if (x.responseText == "y") {
|
||
u.success({
|
||
status: "y"
|
||
})
|
||
} else {
|
||
u.success({
|
||
status: "n",
|
||
info: x.responseText
|
||
})
|
||
}
|
||
return false
|
||
}
|
||
if (x.statusText !== "abort") {
|
||
var y = "status: " + x.status + "; statusText: " + x.statusText;
|
||
a.util.showmsg.call(v, y, o.tiptype, {
|
||
obj: m,
|
||
type: 3,
|
||
sweep: o.tipSweep
|
||
});
|
||
r.addClass("Validform_error")
|
||
}
|
||
m[0].validform_valid = x.statusText;
|
||
r[0].validform_ajax = null;
|
||
return true
|
||
}
|
||
};
|
||
if (u.success) {
|
||
var w = u.success;
|
||
u.success = function(x) {
|
||
p.success(x);
|
||
w(x, m)
|
||
}
|
||
}
|
||
if (u.error) {
|
||
var l = u.error;
|
||
u.error = function(x) {
|
||
p.error(x) && l(x, m)
|
||
}
|
||
}
|
||
u = d.extend({},
|
||
p, u, {
|
||
dataType: "json"
|
||
});
|
||
r[0].validform_ajax = d.ajax(u);
|
||
return "ajax"
|
||
} else {
|
||
if (q && a.util.isEmpty.call(d(this), k)) {
|
||
a.util.abort.call(r[0]);
|
||
r[0].validform_valid = "true"
|
||
}
|
||
}
|
||
if (!n) {
|
||
a.util.showmsg.call(v, s.info, o.tiptype, {
|
||
obj: d(this),
|
||
type: s.type,
|
||
sweep: o.tipSweep
|
||
},
|
||
"bycheck");
|
||
r.removeClass("Validform_error")
|
||
}
|
||
g = null;
|
||
return true
|
||
},
|
||
submitForm: function(o, l, k, r, t) {
|
||
var w = this;
|
||
if (w[0].validform_status === "posting") {
|
||
return false
|
||
}
|
||
if (o.postonce && w[0].validform_status === "posted") {
|
||
return false
|
||
}
|
||
var v = o.beforeCheck && o.beforeCheck(w);
|
||
if (v === false) {
|
||
return false
|
||
}
|
||
var s = true,
|
||
n;
|
||
w.find("[datatype]").each(function() {
|
||
if (l) {
|
||
return false
|
||
}
|
||
if (o.ignoreHidden && d(this).is(":hidden") || d(this).data("dataIgnore") === "dataIgnore") {
|
||
return true
|
||
}
|
||
var z = a.util.getValue.call(w, d(this)),
|
||
A;
|
||
g = A = d(this);
|
||
n = a.util.regcheck.call(w, d(this).attr("datatype"), z, d(this));
|
||
if (!n.passed) {
|
||
a.util.showmsg.call(w, n.info, o.tiptype, {
|
||
obj: d(this),
|
||
type: n.type,
|
||
sweep: o.tipSweep
|
||
});
|
||
A.addClass("Validform_error");
|
||
if (!o.showAllError) {
|
||
A.focus();
|
||
s = false;
|
||
return false
|
||
}
|
||
s && (s = false);
|
||
return true
|
||
}
|
||
if (d(this).attr("ajaxurl") && !a.util.isEmpty.call(d(this), z)) {
|
||
if (this.validform_valid !== "true") {
|
||
var y = d(this);
|
||
a.util.showmsg.call(w, w.data("tipmsg").v || e.v, o.tiptype, {
|
||
obj: y,
|
||
type: 3,
|
||
sweep: o.tipSweep
|
||
});
|
||
A.addClass("Validform_error");
|
||
y.trigger("blur", ["postform"]);
|
||
if (!o.showAllError) {
|
||
s = false;
|
||
return false
|
||
}
|
||
s && (s = false);
|
||
return true
|
||
}
|
||
} else {
|
||
if (d(this).attr("ajaxurl") && a.util.isEmpty.call(d(this), z)) {
|
||
a.util.abort.call(this);
|
||
this.validform_valid = "true"
|
||
}
|
||
}
|
||
a.util.showmsg.call(w, n.info, o.tiptype, {
|
||
obj: d(this),
|
||
type: n.type,
|
||
sweep: o.tipSweep
|
||
});
|
||
A.removeClass("Validform_error");
|
||
g = null
|
||
});
|
||
if (o.showAllError) {
|
||
w.find(".Validform_error:first").focus()
|
||
}
|
||
if (s) {
|
||
var q = o.beforeSubmit && o.beforeSubmit(w);
|
||
if (q === false) {
|
||
return false
|
||
}
|
||
w[0].validform_status = "posting";
|
||
if (o.ajaxPost || r === "ajaxPost") {
|
||
var u = d.extend(true, {},
|
||
o.ajaxpost || {});
|
||
u.url = k || u.url || o.url || w.attr("action");
|
||
a.util.showmsg.call(w, w.data("tipmsg").p || e.p, o.tiptype, {
|
||
obj: w,
|
||
type: 1,
|
||
sweep: o.tipSweep
|
||
},
|
||
"byajax");
|
||
if (t) {
|
||
u.async = false
|
||
} else {
|
||
if (t === false) {
|
||
u.async = true
|
||
}
|
||
}
|
||
if (u.success) {
|
||
var x = u.success;
|
||
u.success = function(y) {
|
||
o.callback && o.callback(y);
|
||
w[0].validform_ajax = null;
|
||
if (d.trim(y.status) === "y") {
|
||
w[0].validform_status = "posted"
|
||
} else {
|
||
w[0].validform_status = "normal"
|
||
}
|
||
x(y, w)
|
||
}
|
||
}
|
||
if (u.error) {
|
||
var m = u.error;
|
||
u.error = function(y) {
|
||
o.callback && o.callback(y);
|
||
w[0].validform_status = "normal";
|
||
w[0].validform_ajax = null;
|
||
m(y, w)
|
||
}
|
||
}
|
||
var p = {
|
||
type: "POST",
|
||
async: true,
|
||
data: w.serializeArray(),
|
||
success: function(y) {
|
||
if (d.trim(y.status) === "y") {
|
||
w[0].validform_status = "posted";
|
||
a.util.showmsg.call(w, y.info, o.tiptype, {
|
||
obj: w,
|
||
type: 2,
|
||
sweep: o.tipSweep
|
||
},
|
||
"byajax")
|
||
} else {
|
||
w[0].validform_status = "normal";
|
||
a.util.showmsg.call(w, y.info, o.tiptype, {
|
||
obj: w,
|
||
type: 3,
|
||
sweep: o.tipSweep
|
||
},
|
||
"byajax")
|
||
}
|
||
o.callback && o.callback(y);
|
||
w[0].validform_ajax = null
|
||
},
|
||
error: function(y) {
|
||
var z = "status: " + y.status + "; statusText: " + y.statusText;
|
||
a.util.showmsg.call(w, z, o.tiptype, {
|
||
obj: w,
|
||
type: 3,
|
||
sweep: o.tipSweep
|
||
},
|
||
"byajax");
|
||
o.callback && o.callback(y);
|
||
w[0].validform_status = "normal";
|
||
w[0].validform_ajax = null
|
||
}
|
||
};
|
||
u = d.extend({},
|
||
p, u, {
|
||
dataType: "json"
|
||
});
|
||
w[0].validform_ajax = d.ajax(u)
|
||
} else {
|
||
if (!o.postonce) {
|
||
w[0].validform_status = "normal"
|
||
}
|
||
var k = k || o.url;
|
||
if (k) {
|
||
w.attr("action", k)
|
||
}
|
||
return o.callback && o.callback(w)
|
||
}
|
||
}
|
||
return false
|
||
},
|
||
resetForm: function() {
|
||
var k = this;
|
||
k.each(function() {
|
||
this.reset && this.reset();
|
||
this.validform_status = "normal"
|
||
});
|
||
k.find(".Validform_right").text("");
|
||
k.find(".passwordStrength").children().removeClass("bgStrength");
|
||
k.find(".Validform_checktip").removeClass("Validform_wrong Validform_right Validform_loading");
|
||
k.find(".Validform_error").removeClass("Validform_error");
|
||
k.find("[datatype]").removeData("cked").removeData("dataIgnore").each(function() {
|
||
this.validform_lastval = null
|
||
});
|
||
k.eq(0).find("input:first").focus()
|
||
},
|
||
abort: function() {
|
||
if (this.validform_ajax) {
|
||
this.validform_ajax.abort()
|
||
}
|
||
}
|
||
};
|
||
d.Datatype = a.util.dataType;
|
||
a.prototype = {
|
||
dataType: a.util.dataType,
|
||
eq: function(l) {
|
||
var k = this;
|
||
if (l >= k.forms.length) {
|
||
return null
|
||
}
|
||
if (! (l in k.objects)) {
|
||
k.objects[l] = new a(d(k.forms[l]).get(), {},
|
||
true)
|
||
}
|
||
return k.objects[l]
|
||
},
|
||
resetStatus: function() {
|
||
var k = this;
|
||
d(k.forms).each(function() {
|
||
this.validform_status = "normal"
|
||
});
|
||
return this
|
||
},
|
||
setStatus: function(k) {
|
||
var l = this;
|
||
d(l.forms).each(function() {
|
||
this.validform_status = k || "posting"
|
||
});
|
||
return this
|
||
},
|
||
getStatus: function() {
|
||
var l = this;
|
||
var k = d(l.forms)[0].validform_status;
|
||
return k
|
||
},
|
||
ignore: function(k) {
|
||
var l = this;
|
||
var k = k || "[datatype]";
|
||
d(l.forms).find(k).each(function() {
|
||
d(this).data("dataIgnore", "dataIgnore").removeClass("Validform_error")
|
||
});
|
||
return this
|
||
},
|
||
unignore: function(k) {
|
||
var l = this;
|
||
var k = k || "[datatype]";
|
||
d(l.forms).find(k).each(function() {
|
||
d(this).removeData("dataIgnore")
|
||
});
|
||
return this
|
||
},
|
||
addRule: function(n) {
|
||
var m = this;
|
||
var n = n || [];
|
||
for (var l = 0; l < n.length; l++) {
|
||
var p = d(m.forms).find(n[l].ele);
|
||
for (var k in n[l]) {
|
||
k !== "ele" && p.attr(k, n[l][k])
|
||
}
|
||
}
|
||
d(m.forms).each(function() {
|
||
var o = d(this);
|
||
a.util.enhance.call(o, this.settings.tiptype, this.settings.usePlugin, this.settings.tipSweep, "addRule")
|
||
});
|
||
return this
|
||
},
|
||
ajaxPost: function(k, m, l) {
|
||
var n = this;
|
||
d(n.forms).each(function() {
|
||
if (this.settings.tiptype == 1 || this.settings.tiptype == 2 || this.settings.tiptype == 3) {
|
||
c()
|
||
}
|
||
a.util.submitForm.call(d(n.forms[0]), this.settings, k, l, "ajaxPost", m)
|
||
});
|
||
return this
|
||
},
|
||
submitForm: function(k, l) {
|
||
var m = this;
|
||
d(m.forms).each(function() {
|
||
var n = a.util.submitForm.call(d(this), this.settings, k, l);
|
||
n === b && (n = true);
|
||
if (n === true) {
|
||
this.submit()
|
||
}
|
||
});
|
||
return this
|
||
},
|
||
resetForm: function() {
|
||
var k = this;
|
||
a.util.resetForm.call(d(k.forms));
|
||
return this
|
||
},
|
||
abort: function() {
|
||
var k = this;
|
||
d(k.forms).each(function() {
|
||
a.util.abort.call(this)
|
||
});
|
||
return this
|
||
},
|
||
check: function(m, k) {
|
||
var k = k || "[datatype]",
|
||
o = this,
|
||
n = d(o.forms),
|
||
l = true;
|
||
n.find(k).each(function() {
|
||
a.util.check.call(this, n, "", m) || (l = false)
|
||
});
|
||
return l
|
||
},
|
||
config: function(k) {
|
||
var l = this;
|
||
k = k || {};
|
||
d(l.forms).each(function() {
|
||
var m = d(this);
|
||
this.settings = d.extend(true, this.settings, k);
|
||
a.util.enhance.call(m, this.settings.tiptype, this.settings.usePlugin, this.settings.tipSweep)
|
||
});
|
||
return this
|
||
}
|
||
};
|
||
d.fn.Validform = function(k) {
|
||
return new a(this, k)
|
||
};
|
||
function h(n, m) {
|
||
var l = (d(window).width() - n.outerWidth()) / 2,
|
||
k = (d(window).height() - n.outerHeight()) / 2,
|
||
k = (document.documentElement.scrollTop ? document.documentElement.scrollTop: document.body.scrollTop) + (k > 0 ? k: 0);
|
||
n.css({
|
||
left: l
|
||
}).animate({
|
||
top: k
|
||
},
|
||
{
|
||
duration: m,
|
||
queue: false
|
||
})
|
||
}
|
||
function c() {
|
||
if (d("#Validform_msg").length !== 0) {
|
||
return false
|
||
}
|
||
j = d('<div id="Validform_msg"><div class="Validform_alert"><span id="Validform_alert_status" class="Validform_alert_loading"></span><span class="Validform_info"></span><span class="Validform_alert_end"></span></div></div>').appendTo("body");
|
||
j.find("a.Validform_close").click(function() {
|
||
j.hide();
|
||
i = true;
|
||
if (g) {
|
||
g.focus().addClass("Validform_error")
|
||
}
|
||
return false
|
||
}).focus(function() {
|
||
this.blur()
|
||
});
|
||
d(window).bind("scroll resize",
|
||
function() { ! i && h(j, 400)
|
||
})
|
||
}
|
||
d.Showmsg = function(k) {
|
||
c();
|
||
a.util.showmsg.call(f, k, 1, {})
|
||
};
|
||
d.Hidemsg = function() {
|
||
j.hide();
|
||
i = true
|
||
}
|
||
})(jQuery, window); |